반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- War
- Web
- jsp
- 이클립스
- mybatis
- Linux
- maven
- git
- REST
- oracle
- java
- 스프링부트
- annotaion
- 개발
- JAR
- soap
- tomcat
- Spring
- gitlab
- Spring Boot
- Gradle
- Pipeline
- Jenkins
- 웹프로젝트
- SpringFramework
- hashcode
- 스프링프레임워크
- springboot
- spring-framework
- Spring Framework
Archives
- Today
- Total
Verity's Daily Logs_
[Spring-Framework]Java Configuration 전환하기 본문
반응형
[참고도서: https://book.naver.com/bookdb/book_detail.nhn?bid=13993776]
스프링 3버전 이후에는 Java 클래스 파일을 이용하는 설정을 지원하는데, 지속적으로 XML 과 별개로 Java를 이용하는 설정 (Java Configuration)을 활용한 프로젝트 예시가 증가하고 있다.
이전 게시글과 동일하게 'Spring Legacy Project' 로 생성한 프로젝트가 있다는 가정하에 아래 단계를 거치면 된다.
1. XML 파일 삭제
web.xml, servlet-context.xml, root-context.xml 파일을 삭제한다.
web.xml을 삭제하면 pom.xml에서 에러가 발생하는데, 이를 해결하기 위해서 plugins내에 설정을 추가한다.
- pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
2. @Configuration 설정파일 생성하기
@Configuration이라는 어노테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정파일을 대신할 수 있다.
도메인 패키지 하위경로에 config 패키지를 생성, RootConfig 클래스와 WebConfig, ServletConfig 클래스를 작성한다.
- RootConfig.java
package com.happynarae.itapp.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages= {"com.[패키지경로]"})
public class RootConfig {
}
- WebConfig.java
package com.happynarae.itapp.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
//root-context.xml 을 대신하는 클래스를 지정함: RootConfig.java
return new Class[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {ServletConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
- ServeletConfig.java
package com.happynarae.itapp.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@EnableWebMvc
@ComponentScan(basePackages = {"com.[패키지경로].controller"})
public class ServletConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/WEB-INF/views/");
bean.setSuffix(".jsp");
registry.viewResolver(bean);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
}
반응형
'Spring Framework' 카테고리의 다른 글
Spring Framework VS Spring Boot (0) | 2020.10.12 |
---|---|
[Spring-Framework]MyBatis와 연동하기-2 (0) | 2020.08.25 |
[Spring-Framework]MyBatis와 연동하기 (0) | 2020.08.25 |
[Spring-Framework]JDBC 연결하기 (0) | 2020.08.25 |
[Spring-Framework]스프링 프로젝트 생성하기 (0) | 2020.08.21 |
Comments