728x90

자바클래스로 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

+ Recent posts