![](https://blog.kakaocdn.net/dn/mHVBo/btrnxk9fzCO/7ADtJSqzkUwoK0xsSDMGIk/img.png)
10. com/mvc/update/config/ApplicationConfig
![](https://blog.kakaocdn.net/dn/cBnVji/btrnqw4T9Od/eVrC0jJxhZsVSEhQlCLyN1/img.png)
com.mvc.update.config.ApplicationConfig를 만들어주세요!
applicationContext.xml의 내용을 applicationConfig로 옮기려고합니다.
![](https://blog.kakaocdn.net/dn/b15FXU/btrnpOY2AsS/7f4aia1mair5OXK833bKiK/img.png)
xml파일의 이름은 Spring Bean Configuration File입니다.
클래스(.java)에 xml파일을 옮기기 위해서는 @Configuration 어노테이션이 필요합니다.
![](https://blog.kakaocdn.net/dn/oxV4a/btrnvze0mwI/nmbTsgCX0BSKTvxfxlrcaK/img.png)
context:property의 내용은 클래스 위에 @PropertySource 어노테이션을 작성하면됩니다.
그리고 필드를 선언해서 @Value어노테이션으로 값을 주입합니다.
자바에서 Bean태그를 사용하기 위해서는 @Bean 어노테이션을 사용합니다.
11. com/mvc/update/config/ServletConfig(impl WebMvcConfigurer)
이번에는 servlet-context.xml을 java로 바꿔보겠습니다.
WebMvcConfigurer을 상속받는 클래스를 만들어주세요!
![](https://blog.kakaocdn.net/dn/bcU22A/btrnteJgaIc/WtzWkKE0P03rl70TKop1c0/img.png)
![](https://blog.kakaocdn.net/dn/c5Oyx5/btrnpOEI7Y7/KzXR8rTiD8y1eKIFoffgsk/img.png)
![](https://blog.kakaocdn.net/dn/bV8sDK/btrnvoEMzSA/lMjYJukoVvJA1LoIYeOryK/img.png)
마찬가지로 xml파일에 대한 내용을 자바에서 사용하기 위해 @Configuration 어노테이션을 작성합니다.
이후 addResourceHandler를 @Override하여 메소드를 작성합니다.
또 Bean객체를 만들기위해 @Bean어노테이션을 사용합니다.
Component-scan을 사용하기 위해서는 @ComponentScan 어노테이션을 걸어주면됩나다.
12. web.xml
![](https://blog.kakaocdn.net/dn/9v14W/btrnvpjqjrA/3k81uoxNkuB29sCg3VCAk0/img.png)
13. WEB-INF/spring/appServlet
(appServlet 폴더 삭제 - maven - update project)
14.com/mvc/update/config/WebConfig
(impl WebApplicationInitializer)
![](https://blog.kakaocdn.net/dn/cpcVDO/btrnvuY9yAb/JQRxABy0rBCEjrNZsi9aS0/img.png)
![](https://blog.kakaocdn.net/dn/cuRjdz/btrnvvRgrAh/pwe3Rw6iWu9deUtOlVyR90/img.png)
![](https://blog.kakaocdn.net/dn/bQHYPs/btrnpPjnQIn/ek9ka8wiNYp1tUn6vSgiw0/img.png)
![](https://blog.kakaocdn.net/dn/8Pear/btrnpepVU8P/34R9EKLS0bLE96PoTUk0N1/img.png)
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
![](https://blog.kakaocdn.net/dn/c0KdWg/btrnxlUCDW2/LzkMY4O7rGctSPcjmIJ0Rk/img.png)
<!-- 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 |