[Spring Framework] 스프링 xml 설정을 Java 클래스로 하는 방법
- 웹 개발/Spring Framework
- 2019. 9. 3. 13:08
Spring lagacy Project로 프로젝트를 생성한 경우!
1. web.xml, root-context.xml, servlet-context.xml 파일을 삭제한다.
2. pom.xml 에 web.xml 파일이 없다는 설정을 추가해야한다.
<plugins>
...
<!-- root-context, servlet-context, web.xml 없다는 플러그인 -->
<!-- 자바로 설정할때 쓸것. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
3. Java로 설정하는 경우 xml파일의 역할을 Java 클래스가 대신하게 되므로 기능을 대신할 Java Class 3개를 만들어 줍니다.(Spring lagacy인 경우 스프링 버전이 3.x 대 버전이기 때문에 이를 5.x 대 버전으로 높이고 java 버전도 1.8정도로 맞춰주세요. pom.xml에서, 그래야 밑에 3개의 클래스들이 상속/구현할 클래스/인터페이스들이 가져와집니다.)
- WebConfig.java (AbstractAnnotationConfigDispatcherServletInitializer 클래스 상속)
- RootConfig.java
- ServletConfig.java (WebMvcConfigurer 인터페이스 구현)
4. 각각의 클래스에 내용을 추가합니다.
ServletConfig.java
package org.zerock.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= {"org.zerock.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/");
}
}
- ServletConfig 클래스는 주로 다음과 같은 방식을 사용하는데
1. 예제처럼 @EnableWebMvc 어노테이션과 WebMvcConfigurer 인터페이스를 구현하는 방식.
2. @Configuration과 WebMvcConfigurationSupport 클래스를 상속하는 방식 -> 일반 @Configuration 우선순위가 구분되지 않는 경우에 사용한다고함.
RootConfig.java
package org.zerock.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RootConfig {
}
- 설정이 있을 때 채워줍니다.
WebConfig.java
package org.zerock.config;
//자바로 설정하는 경우 : servlet-context, root-context, web.xml 파일 삭제
// pom.xml 에 plugin 추가
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;;
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {ServletConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
- Config 자바파일들을 설정해줌.
'웹 개발 > Spring Framework' 카테고리의 다른 글
[Spring] Quartz 라이브러리를 이용한 스케쥴러 설정 (0) | 2019.10.04 |
---|---|
[Spring] @Transactional 어노테이션 사용 및 예제! (0) | 2019.09.12 |
[Spring framework] 스프링 MVC에서 잘 사용되는 객체, 용어 정리 (1) | 2019.09.03 |
[Spring] AOP를 이용한 로그인 인증 PointCut 예제 (2) | 2019.07.06 |
[Spring Framework] 스프링 Mybatis Postgresql 연동하는 방법 (0) | 2019.05.17 |