10. com/mvc/update/config/ApplicationConfig
com.mvc.update.config.ApplicationConfig를 만들어주세요!
applicationContext.xml의 내용을 applicationConfig로 옮기려고합니다.
xml파일의 이름은 Spring Bean Configuration File입니다.
클래스(.java)에 xml파일을 옮기기 위해서는 @Configuration 어노테이션이 필요합니다.
context:property의 내용은 클래스 위에 @PropertySource 어노테이션을 작성하면됩니다.
그리고 필드를 선언해서 @Value어노테이션으로 값을 주입합니다.
자바에서 Bean태그를 사용하기 위해서는 @Bean 어노테이션을 사용합니다.
11. com/mvc/update/config/ServletConfig(impl WebMvcConfigurer)
이번에는 servlet-context.xml을 java로 바꿔보겠습니다.
WebMvcConfigurer을 상속받는 클래스를 만들어주세요!
마찬가지로 xml파일에 대한 내용을 자바에서 사용하기 위해 @Configuration 어노테이션을 작성합니다.
이후 addResourceHandler를 @Override하여 메소드를 작성합니다.
또 Bean객체를 만들기위해 @Bean어노테이션을 사용합니다.
Component-scan을 사용하기 위해서는 @ComponentScan 어노테이션을 걸어주면됩나다.
12. web.xml
13. WEB-INF/spring/appServlet
(appServlet 폴더 삭제 - maven - update project)
14.com/mvc/update/config/WebConfig
(impl WebApplicationInitializer)
WebConfig.java
package com.mvc.update.config;
import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;
public class WebConfig implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
// ApplicationConfig : config 설정 클래스를 지정해주는 것
AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
applicationContext.register(ApplicationConfig.class);
// Listener
servletContext.addListener(new ContextLoaderListener(applicationContext));
// ServletConfig
AnnotationConfigWebApplicationContext servletConfig = new AnnotationConfigWebApplicationContext();
servletConfig.register(ServletConfig.class);
ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(servletConfig));
dispatcherServlet.setLoadOnStartup(1);
dispatcherServlet.addMapping("*.do");
// encodingFilter
FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter("UTF-8", true));
filterRegistration.addMappingForUrlPatterns(null, true, "/*");
}
}
15. pom.xml : failOnMissingWebXml -> false
<!-- web.xml 삭제 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
'Java 관련 > Spring Legecy' 카테고리의 다른 글
[Spring] Hello, Spring! (스프링 프로젝트 실행) (0) | 2022.09.04 |
---|---|
[Spring] Maven을 이용한 스프링 프로젝트 생성 (0) | 2022.09.03 |
[Spring] Spring JDBC (0) | 2022.04.11 |
Spring] update(버전설정 잡기) (0) | 2022.04.10 |
[Spring] 파일 업로드 / 다운로드(file upload / download) (0) | 2022.04.09 |