1. @Configuration
    2. //扫描组件
    3. @ComponentScan("com.atguigu.mvc.controller")
    4. //开启MVC注解驱动
    5. @EnableWebMvc
    6. public class WebConfig implements WebMvcConfigurer {
    7. //使用默认的servlet处理静态资源
    8. @Override
    9. public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    10. configurer.enable();
    11. }
    12. //配置文件上传解析器
    13. @Bean
    14. public CommonsMultipartResolver multipartResolver(){
    15. return new CommonsMultipartResolver();
    16. }
    17. //配置拦截器
    18. @Override
    19. public void addInterceptors(InterceptorRegistry registry) {
    20. FirstInterceptor firstInterceptor = new FirstInterceptor();
    21. registry.addInterceptor(firstInterceptor).addPathPatterns("/**");
    22. }
    23. //配置视图控制
    24. /*@Override
    25. public void addViewControllers(ViewControllerRegistry registry) {
    26. registry.addViewController("/").setViewName("index");
    27. }*/
    28. //配置异常映射
    29. /*@Override
    30. public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
    31. SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver();
    32. Properties prop = new Properties();
    33. prop.setProperty("java.lang.ArithmeticException", "error");
    34. //设置异常映射
    35. exceptionResolver.setExceptionMappings(prop);
    36. //设置共享异常信息的键
    37. exceptionResolver.setExceptionAttribute("ex");
    38. resolvers.add(exceptionResolver);
    39. }*/
    40. //配置生成模板解析器
    41. @Bean
    42. public ITemplateResolver templateResolver() {
    43. WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
    44. // ServletContextTemplateResolver需要一个ServletContext作为构造参数,可通过 WebApplicationContext 的方法获得
    45. ServletContextTemplateResolver templateResolver =
    46. new ServletContextTemplateResolver( webApplicationContext.getServletContext());
    47. templateResolver.setPrefix("/WEB-INF/templates/");
    48. templateResolver.setSuffix(".html");
    49. templateResolver.setCharacterEncoding("UTF-8");
    50. templateResolver.setTemplateMode(TemplateMode.HTML);
    51. return templateResolver;
    52. }
    53. //生成模板引擎并为模板引擎注入模板解析器
    54. @Bean
    55. public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {
    56. SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    57. templateEngine.setTemplateResolver(templateResolver);
    58. return templateEngine;
    59. }
    60. //生成视图解析器并未解析器注入模板引擎
    61. @Bean
    62. public ViewResolver viewResolver(SpringTemplateEngine templateEngine) {
    63. ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    64. viewResolver.setCharacterEncoding("UTF-8");
    65. viewResolver.setTemplateEngine(templateEngine);
    66. return viewResolver;
    67. }
    68. }