SpringMVC之配置(註解版)
阿新 • • 發佈:2018-11-27
//web容器啟動的時候建立物件,呼叫方法來初始化容器以及前端控制器 public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { //獲取根容器的配置類(Spring的配置檔案) 父容器 @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[]{RootConfig.class}; } //獲取web容器的配置類(SpringMVC配置檔案) 子容器 @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{AppConfig.class}; } //獲取DispatcherServlet的對映資訊 // /:攔截所有請求(包括靜態資源(xx.js,xx.png)),但是不包括*.jsp // /*:攔截所有請求,連*.jsp頁面都攔截,jsp頁面是tomcat的jsp引擎解析的 @Override protected String[] getServletMappings() { return new String[]{"/"}; } }
//Spring的容器不掃描controller,父容器
@ComponentScan(value="com.atguigu",excludeFilters={
@Filter(type=FilterType.ANNOTATION,classes={Controller.class})
})
public class RootConfig {
}
//SpringMVC只掃描Controller,子容器 //useDefaultFilters=false,禁用預設的過濾規則 @ComponentScan(value="com.atguigu",includeFilters={ @Filter(type=FilterType.ANNOTATION,classes={Controller.class}) },useDefaultFilters=false) @EnableWebMvc // 開啟自定義MVC配置 public class AppConfig implements WebMvcConfigurer { //檢視解析器 @Override public void configureViewResolvers(ViewResolverRegistry registry) { //預設所有的頁面都從 /WEB-INF/ xxx .jsp //registry.jsp(); registry.jsp("/WEB-INF/views/", ".jsp"); } //靜態資源訪問 @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } //攔截器 @Override public void addInterceptors(InterceptorRegistry registry) { //super.addInterceptors(registry); registry.addInterceptor(new MyFirstInterceptor()).addPathPatterns("/**"); } }
更多配置請參考官方文件:《MVC Config》