SpringBoot中通过ConfigurationProperties注解的方式读取application.yml中配置的属性值

tech2023-08-07  103

场景

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

 

最新回复(0)