場景
在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();