Configuration类的@Value属性值为null

Posted baby123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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类下

以上是关于Configuration类的@Value属性值为null的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot的注解@Configuration @value 的区别

Configuration.GetSection 始终返回 Value 属性 null

016 @Configuration和@Bean

解决JSON返回HashMap字段值为null不显示key的问题

js操作对象属性值为字符串

spring boot配置文件@ConfigurationProperties@Value@ConfigurationProperties@Configuration和 Profile