• SpringMVC笔记——SpringMVC配置类取代xml配置


    什么是SpringMVC配置

    SpringMVC配置类是一个用来配置SpringMVC的类,它通常包含了一些SpringMVC的基本设置,例如视图解析器、拦截器、消息转换器等。

    1.创建SpringConfig


    @Configuration  
    public class SpringConfig {  
    }
    
    • 1
    • 2
    • 3

    2.创建SpringMVC初始类(代替web.xml)


    初始类需要继承 AbstractAnnotationConfigDispatcherServletInitializer

    public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
        /**
         * 指定spring的配置文件
         * @return
         */
        @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class[]{SpringConfig.class};
        }
    
        /**
         * 指定SpringMVC的配置文件
         * @return
         */
        @Override
        protected Class<?>[] getServletConfigClasses() {
            return new Class[]{WebConfig.class};
        }
    
        /**
         * 指定Mapping映射规则
         * @return
         */
        @Override
        protected String[] getServletMappings() {
            return new String[]{"/"};
        }
        /**
         * 注册过滤器
         * @return Filter[]
         */
        @Override
        protected Filter[] getServletFilters() {
            CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
            characterEncodingFilter.setEncoding("UTF-8");
            characterEncodingFilter.setForceEncoding(true);
            HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
            return new Filter[] {characterEncodingFilter, hiddenHttpMethodFilter};
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    3. 创建SpringMVC配置类(代替SpringMVC.xml

    // 标识为配置类  
    @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;  
        }  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  • 相关阅读:
    WPF中 ContextMenu 寻找父物体的一种方案
    分布式数据库Mongodb——实验一
    STL迭代器
    Python爬虫——BS4解析方式简介
    第7篇 vue的模块化与babel的转换
    STM32物联网项目-高级定时器软件仿真输出互补PWM信号
    Python采集某Top 250信息,再也不怕寂寞无聊......
    vue设置页面超时15分钟自动退出登录
    JavaSE——异常
    3.无霍尔传感器的BLDC换向原理
  • 原文地址:https://blog.csdn.net/qq_66250368/article/details/138027842