• SpringBoot在Configuration注解中使用@Value获取null的问题


    
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MyConfigure {
        @Value( "${spring.application.name}")
        private  String name ;
    
        @Value( "${spring.datasource.driver-class-name}")
        protected String driverClassName ;
        
        public MyConfigure(){
            // 这里 name 和 driverClassName 都是null
        }
    }

    修改 MyConfigure 实现 EnvironmentAware 接口

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.EnvironmentAware;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    
    @Configuration
    public class MyConfigure implements EnvironmentAware {
        @Value( "${spring.application.name}")
        private  String name ;
    
        @Value( "${spring.datasource.driver-class-name}")
        protected String driverClassName ;
        
        private Environment env;
    
        @Override
        public void setEnvironment(Environment environment) {
            this.env = environment; 
            this.doSomething();
        }
    
        public MyConfigure(){
            // 这里 name 和 driverClassName 都是null
        }
        
        private void doSomething(){
            // 这里 获取 name 和 driverClassName  
            this.driverClassName = this.env.getProperty("spring.datasource.driver-class-name");
        }
    }

    解决获取不到配置的问题




  • 相关阅读:
    vue用户登录状态判断
    Android webView包装WebAPP
    浮动粒子制作404动画页面
    使用 typescript 和 canvas 重构snow效果
    毕达哥拉斯树(pythagorasTree)原理解析及canvas动画实现
    canvas入门之时钟的实现
    canvas动画之动态绘出六边形
    分享一篇vue项目规范
    css3 ajax加载进度线
    react 体验 react与vue的比较
  • 原文地址:https://www.cnblogs.com/Leechg/p/12331985.html
Copyright © 2020-2023  润新知