zoukankan      html  css  js  c++  java
  • springboot @Autowired注入为null

    读取 application-dev.yml 文件,如果是有多个 application.yml 文件请指定路径

    package com.nuctech.datasync.util;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    
    @Component
    @PropertySource("classpath:/application-dev.yml")
    @ConfigurationProperties(prefix = "erpax")
    public class ReadApplication {
        
        private  String driverClassName;
    
        public String getDriverClassName() {
            return driverClassName;
        }
     public void setDriverClassName(String driverClassName) {
            this.driverClassName = driverClassName;
        }
    }

    下面是 @Autowired注入配置信息类,get属性时,出现空指针的问题。

    只要加上@PostConstruct 并且 public static SyncMaterialUtil syncMaterial;

    一定要public static 

    @PostConstruct 
    public void init() {
    syncMaterial= this;
    syncMaterial.read= this.read; 
    }

    这样加上之后,就可以就可以用  syncMaterial.read.getDriverClassName() 的方式取到。

    package com.nuctech.datasync.util;
    
    import javax.annotation.PostConstruct;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    @Component
    public class SyncMaterialUtil {
        
        @Autowired
        private  ReadApplication read;
    
        public static SyncMaterialUtil syncMaterial;
        
        @PostConstruct //通过@PostConstruct实现初始化bean之前进行的操作
        public void init() {
            syncMaterial= this;
            syncMaterial.read= this.read;  
        }
         
        public static void main(String[] args) {
          System.out.println(syncMaterial.read.getDriverClassName());
        }
    }

    测试取到了application.yml的数据

  • 相关阅读:
    去除Html标签
    asp.net弹出多个模态窗口
    window.returnValue的用法
    eTerm-用于报价的指令(GK状态码的使用)
    使用ffmpeg 操作音频文件前后部分静音移除.
    使用Visual Studio 2017开发python,并在iis上部署Python Django
    解决wampserver 服务无法启动
    网站优化记录-通过命令预编译Asp.net 网站,成功优化到毫秒级别。
    Scut游戏引擎改造兼容Codis。
    windows修改Host后未生效。
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/13685548.html
Copyright © 2011-2022 走看看