일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- DDL
- 서브쿼리
- toUpperCase
- MVC
- AOP
- MVC2
- @Controller
- 코딩테스트
- Join
- 인프런
- 롬복
- 코테
- 김영한
- Lombok
- 뉴렉처
- Model1
- 프로그래머스
- 스프링
- SQL
- 서블릿
- 인텔리제이
- Model2
- JSP
- 기술 대비
- 메이븐
- @RestController
- select
- STS
- 프레임워크
- 자바
- Today
- Total
Heestory
javaconfig 설정 기본1 본문
1.springMVCproject
2.spring 폴더, web.xml 삭제 (home.jsp와 homecontroller는 재량)
3.pom.xml
<plugin>
<!-- web.xml 없어도 실행되도록 설정 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
maven-war 검색 후 plugin
버전 관리 후 update maven
4.web.xml 대체 하는 클래스를 만든다. 이 때 패키지명은 아무거나 상관 NO, 아래 최종 web.xml 설정 있음
AbstractAnnotationConfigDispatcherServletInitializer 상속 받는 클래스 -> override method

5.servlet-context.xml을 대신하는 클래스 생성 implements WebMvcConfigurer 상속 받음
● annotation 대신하는 @EnableWebMvc
● <context:component-scan base-package="com.jhta.spring17.controller" /> 대신 @ComponentScan(basePackages = {"com.jhta.spring17.controller"})
● <resources mapping="/resources/**" location="/resources/" /> 대신
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
● <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean> 대신
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
//resolver.setViewClass(JstlView.class);
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
registry.viewResolver(resolver);
}
사용

root-context.xml //DB 설정


@Configuration
@ComponentScan(basePackages = {"test.dao"})
@ComponentScan(basePackages = {"test.service"})
public class RootConfig {
@Autowired ApplicationContext applicationContext;
//dataSource 설정
@Bean(destroyMethod = "close")
public BasicDataSource dataSource() {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
ds.setUsername("c##scott");
ds.setPassword("tiger");
return ds;
}
//sqlSessionFactory 설정 : sqlSessionFactoryBean.getObject();리턴, 어댑터 제공
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource()); //setter
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath*:data/mybatis/mapper/*.xml"));
SqlSessionFactory factory=sqlSessionFactoryBean.getObject();
return factory;
}
//sqlSession 설정
@Bean
public SqlSessionTemplate sqlSessionTemplate() throws Exception {
SqlSessionTemplate sTemplate = new SqlSessionTemplate(sqlSessionFactory()); //생성자
return sTemplate;
}
// //dao설정
// @Bean
// public MembersDao membersDao() throws Exception {
// MembersDao dao = new MembersDao();
// dao.setSqlSession(sqlSessionTemplate());
// return dao;
// }
//
// @Bean
// public MembersService service() throws Exception {
// MembersService service = new MembersService();
// service.setDao(membersDao());
// return service;
// }
}
최종 web.xml에는 class명과 함께 제시한다.

'개발(~국비) > Spring' 카테고리의 다른 글
Security 기본 설정 (0) | 2022.07.21 |
---|---|
org.springframework.beans.factory.UnsatisfiedDependencyException (0) | 2022.07.20 |
java.sql.SQLSyntaxErrorException: ORA-00917: 누락된 콤마 (0) | 2022.07.16 |
ContextLoaderListener 에러 (0) | 2022.07.15 |
에러 (0) | 2022.07.13 |