spring mvc有两个上下文(ApplicationContext),分别为 bean的上下文和mvc 的上下文(ApplicationContext与Spring Container通常可以交换使用)
java config配置示例如下:
1.SpittrWebAppInitializer
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
/**
* spring bean config
* @return
*/
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {RootConfig.class};
}
/**
* spring mvc config
*/
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] {WebConfig.class};
}
@Override
/**
* 所有的请求都会映射到DispatcherServlet上
*/
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
2. spring mvc config
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"spittr.web"})
public class WebConfig extends WebMvcConfigurerAdapter{
/**
* 在视图名称上加上特定的前缀和后缀
* 配置适用于jsp的视图解析器
* @return
*/
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
/**
* 配置静态资源的处理
* 对静态资源的请求转发到Servlet容器中默认的Servlet上,而不是使用DispatcherServlet本身来处理此类请求
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
3. spring bean config
/**
* 根配置,用于ContextLoaderListener加载应用中的bean
*/
@Configuration
@ComponentScan(basePackages = {"spittr"},excludeFilters = {@ComponentScan.Filter(type= FilterType.ANNOTATION, value = EnableWebMvc.class)})
public class RootConfig {
}
网友评论