扩展时getServletConfigClasses()
vs 有什么区别。从今天早上开始,我一直在阅读很多资料,但我还没有对这些差异有任何清楚的了解:getRootConfigClasses()
AbstractAnnotationConfigDispatcherServletInitializer
请看这两种配置:
1)。
public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ConServlet.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
....
....
}
指的ConServlet.class
是
@EnableWebMvc
@Configuration
@ComponentScan({ "com" })
@Import({ SecurityConfig.class })
public class ConServlet {
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/pages/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
2)。
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
.....
}
WebConfig.class指的是
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "....." })
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
我看到ConServlet和WebConfig(或多或少)都在做同样的事情,比如初始化视图:
但为什么 :
- ConServlet返回
getRootConfigClasses()
- 当WebConfig返回时
getServletConfigClasses()
我阅读了文档
getRootConfigClasses ()和getServletConfigClasses() 都适用于
指定要提供给.. 的 @Configuration 和/或 @Component 类(它们的区别)
- 根应用程序上下文
getRootConfigClasses()
- 调度程序 servlet 应用程序上下文
getServletConfigClasses()
但是为什么ConServlet和WebConfig 做同样的事情(比如初始化视图),也许是我误解了它。实际上是根上下文和调度程序 servlet(我知道这个)简单的术语/示例
谢谢!