SpringBoot中通過ConfigurationProperties注解的方式讀取application.yml中配置的屬性值


場景

在SpringBoot后台項目中,某些固定的屬性需要配置在配置文件application.yml中。

比如上傳到服務器的文件路徑。

然后在其他業務代碼中比如上傳文件接口中需要或者到配置的這個屬性值。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

首先在application.yml中添加配置

ruoyi:
  # 名稱
  name: RuoYi
  # 版本
  version: 2.3.0
  # 版權年份
  copyrightYear: 2019
  # 實例演示開關
  demoEnabled: true
  # 文件路徑 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: D:/ruoyi/uploadPath

比如這里的ruoyi下的profile的屬性值

D:/ruoyi/uploadPath

怎樣在代碼中獲取。

首先在SpringBoot項目目錄下新建config目錄,然后新建配置類RuoYiConfig,名字隨意

然后在配置類上添加注解

@Component 
@ConfigurationProperties(prefix = "ruoyi") 
public class RuoYiConfig

注意這里的prefix屬性值與上面配置文件的根元素一致

然后配置類中的屬性與配置文件根節點下的名稱一致 ,配置類完整代碼

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 讀取項目相關配置
 *
 */
@Component
@ConfigurationProperties(prefix = "ruoyi")
public class RuoYiConfig 
{ 
    /** 項目名稱 */ 
    private String name;

    /** 版本 */
    private String version;

    /** 版權年份 */
    private String copyrightYear;

    /** 實例演示開關 */
    private boolean demoEnabled;

    /** 上傳路徑 */
    private static String profile;


    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getVersion()
    {
        return version;
    }

    public void setVersion(String version)
    {
        this.version = version;
    }

    public String getCopyrightYear()
    {
        return copyrightYear;
    }

    public void setCopyrightYear(String copyrightYear)
    {
        this.copyrightYear = copyrightYear;
    }

    public boolean isDemoEnabled()
    {
        return demoEnabled;
    }

    public void setDemoEnabled(boolean demoEnabled)
    {
        this.demoEnabled = demoEnabled;
    }

    public static String getProfile()
    {
        return profile;
    }

    public void setProfile(String profile)
    {
        RuoYiConfig.profile = profile;
    }

    /**
     * 獲取上傳路徑
     */
    public static String getUploadPath()
    {
        return getProfile();
    }
}

這里的配置類的

private static String profile;

就能獲取到application.yml中配置的profile的屬性值了。

為了或此屬性值更加便捷,又新增了一個靜態方法

    public static String getUploadPath()
    {
        return getProfile();
    }

這樣就能通過類直接調用方法。

然后還拼接了一層目錄。這樣通過

RuoYiConfig.getUploadPath();

獲取的路徑就是

D:/ruoyi/uploadPath

除了額外封裝一層靜態類的方式。也可以在需要引用的地方使用注解自動引用配置類

    @Autowired
    private RuoYiConfig ruoYiConfig

然后獲取其屬性

ruoYiConfig.getProfile();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM