자바클래스로 Spring 기본 설정할 때 사용된다.
-web.xml을 대신할 클래스로 톰캣 실행시 기본설정하는 역할을 한다.
WebAppInitConfig 클래스는 WebApplicationInitializer 인터페이스를 상속하여
onStartup 메소드를 구현한다.
onStartup 메소드는 톰캣 실행하자마자 실행되므로 설정의 역할을 하게 된다.
이 메소드에서 dispatcherServlet도 등록하고 ApplicationConfig, Listener, WebConfig, encodingFilter도 설정할 수 있다.
Spring에서 application.properties 파일로 설정을 하면 불필요한 액션인것 같다.
public class WebAppInitConf implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
/**********1.DispatcherServlet등록***************/
AnnotationConfigWebApplicationContext context =
new AnnotationConfigWebApplicationContext();
context.register(WebConfig.class);
ServletRegistration.Dynamic dynamic=
servletContext.addServlet("dispatcherSevlet", new DispatcherServlet(context));
dynamic.setLoadOnStartup(0);
dynamic.addMapping("/");
/********2.config 설정 클래스[ApplicationConfig.java,WebConfig.java]를사용한설정******/
//ApplicationConfig.java
AnnotationConfigWebApplicationContext applicationContext =
new AnnotationConfigWebApplicationContext();
applicationContext.register(ApplicationConfig.class);
//Listener등록
servletContext.addListener(new ContextLoaderListener(applicationContext));
//WebConfig.java
AnnotationConfigWebApplicationContext servletConfig = new AnnotationConfigWebApplicationContext();
servletConfig.register(WebConfig.class);
ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(servletConfig));
dispatcherServlet.setLoadOnStartup(1);
dispatcherServlet.addMapping("/");
//encodingFilter설정
FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter("UTF-8", true));
filterRegistration.addMappingForUrlPatterns(null, true, "/*");
}
}
'Java > Spring Boot' 카테고리의 다른 글
Spring Boot Controller Type of Parameters (0) | 2023.09.13 |
---|---|
Spring Boot DataSource 설정 (0) | 2023.09.13 |
Spring Boot Request Controller (0) | 2023.09.13 |
Spring JSP 국제화 (0) | 2023.09.13 |
Spring Boot Controller Mapping + View Resolver (0) | 2023.09.12 |