zoukankan      html  css  js  c++  java
  • Configuration类的@Value属性值为null

    今天写的Configuration类的@Value属性值为null

    @Configuration
    public class MybatisConfigurer {
        @Value("${spring.datasource.url}")
        private String dbUrl;
        @Value("${spring.datasource.username}")
        private String username;
        @Value("${spring.datasource.password}")
        private String password;
        @Value("${spring.datasource.driver-class-name}")
        private String driverClassName;
        ……
        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer() {
            MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
            mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
            mapperScannerConfigurer.setBasePackage("com.abc.devide.demo.mapper");
            //配置通用Mapper,详情请查阅官方文档
            Properties properties = new Properties();
            properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);
            properties.setProperty("notEmpty", "false");//insert、update是否判断字符串类型!='' 即 test="str != null"表达式内是否追加 and str != ''
            properties.setProperty("IDENTITY", "MYSQL");
            mapperScannerConfigurer.setProperties(properties);
    
            return mapperScannerConfigurer;
        }
    
    }

    问题的原因:

      MapperScannerConfigurer实现了BeanDefinitionRegistryPostProcessor使得spring容器的执行的一些顺序问题,引起了上述@Value属性不能注入

    解决方法:

      将MapperScannerConfigurer单独放在一个@Configuration类下

  • 相关阅读:
    Redis学习笔记1:Redis介绍
    《设计模式之禅》读书笔记1:单一职责原则
    如何在Word中设置其中一页为横向(Office 2013)
    Linux CentOS7 升级内核的方法
    升级openSSH
    Windows服务器杀掉端口的方法
    Linux 安装zlib
    Linux升级openssl
    Linux下安装Perl 5
    Linux 安装gcc
  • 原文地址:https://www.cnblogs.com/baby123/p/11937571.html
Copyright © 2011-2022 走看看