什么是SpringMVC配置类
SpringMVC配置类是一个用来配置SpringMVC的类,它通常包含了一些SpringMVC的基本设置,例如视图解析器、拦截器、消息转换器等。
1.创建SpringConfig
java">@Configuration
public class SpringConfig {
}
xml_15">2.创建SpringMVC初始类(代替web.xml)
初始类需要继承 AbstractAnnotationConfigDispatcherServletInitializer
java">public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 指定spring的配置文件* @return*/@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}/*** 指定SpringMVC的配置文件* @return*/@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{WebConfig.class};}/*** 指定Mapping映射规则* @return*/@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}/*** 注册过滤器* @return Filter[]*/@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();characterEncodingFilter.setEncoding("UTF-8");characterEncodingFilter.setForceEncoding(true);HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();return new Filter[] {characterEncodingFilter, hiddenHttpMethodFilter};}
}
xml_64">3. 创建SpringMVC配置类(代替SpringMVC.xml)
java">// 标识为配置类
@Configuration
// 扫描控制层
@ComponentScan(basePackages = "com.zxb.controller")
public class WebConfig { // 配置生成模板解析器 @Bean public ITemplateResolver templateResolver() { WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); // ServletContextTemplateResolver需要一个ServletContext作为构造参数,可通过WebApplicationContext 的方法获得 ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver( webApplicationContext.getServletContext()); templateResolver.setPrefix("/WEB-INF/templates/"); templateResolver.setSuffix(".html"); templateResolver.setCharacterEncoding("UTF-8"); templateResolver.setTemplateMode(TemplateMode.HTML); return templateResolver; } //生成模板引擎并为模板引擎注入模板解析器 @Bean public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver); return templateEngine; } //生成视图解析器并未解析器注入模板引擎 @Bean public ViewResolver viewResolver(SpringTemplateEngine templateEngihgne) { ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setCharacterEncoding("UTF-8"); viewResolver.setTemplateEngine(templateEngine); return viewResolver; }
}