我们在开发过程中,会经常遇到需要自定义配置的场景,比如配置一个ip,一个地址等,并将其写入到yml文件中,在项目中使用@value(“${xxxx.xxxx}”)来获取自定义的配置,其实是这样是有些笨重的,每定义一个配置,都需要写一个@value来获取,那为啥不使用一个java config来统一获取配置呢?
编写yml配置文件
ur: config: # ur_name ur-name urname这三种配置方式都可以被识别到 ur_name: "zhangsan" age: "20" exmail: "123@123.com" address: "火星"
编写java config类
// 需要重写get与t方法,此处使用lombok注解来代替@data// 实例化到spring容器中@component// 获取前赞美老师的诗句缀为ur.config的配置信息,与该类下的属性对比,进行绑定@configurationproperties(prefix = "ur.config")public class urconfig { private string urname; private string age; private string exmail; private string address;}
在需要使用的地方注入
@resource private urconfig urconfig;
测试
application.yml
配置类
@component@configurationproperties(prefix = "system")public cla新年送礼ss systemconfig { /** * 项目名称 */ private static string name; /** * 版本 */ private string version; /** * 版权年份 */ private string copyrightyear; /** * 实例演示开关 */ private boolean demoenabled; /** * windows环境下,文件上传路径(本地上传) */ private static string winuploadpath; /** * 其他系统环境(linux、mac...)环境下,文件上传路径(本地上传) */ private static string otheruploadpath; /** * 获取地址开关 */ private static boolean addresnabled; public static string getname() { return name; } public void tname(string name) { systemconfig.name = name; } public string getversion() { return version; } public void tversion(string version) { this.version = version; } public string getcopyrightyear() { return copyrightyear; } public void tcopyrightyear(string copyrightyear) { this.copyrightyear = copyrightyear; } public boolean isdemoenabled() { return demoenabled; } public void tdemoenabled(boolean demoenabled) { this.demoenabled = demoenabled; } public static string getwinuploadpath() { return winuploadpath; } public static void twinuploadpath(string winuploadpath) { systemconfig.winuploadpath = winuploadpath; } public static string getotheruploadpath() { return otheruploadpath; } public static void totheruploadpath(string otheruploadpath) { systemconfig.otheruploadpath = otheruploadpath; } public static boolean isaddresnabled() { 阿木古郎 return addresnabled; } public void taddresnabled(boolean addresnabled) { systemconfig.addresnabled = addresnabled; } /** * 判断当前操作系统,返回相应的本地上传路径 * * @return string * @author liangyixiang * @date 2021/11/15 **/ public static string getuploadpath() { osinfo osinfo = systemutil.getosinfo(); // 判断系统环境获取上传路径 if(objectutils.isnotempty(osinfo) && osinfo.iswindows()){ return getwinuploadpath(); }el地球的内部结构{ return getotheruplobdrxadpath(); } } /** * 获取业务系统名称 */ public static string getsystemname() { return getname(); }}
name、addresnabled 以及 winuploadpath、otheruploadpath 都是静态的成员变量,但是他们name、addresnabled能获取到配置文件的值,winuploadpath、otheruploadpath不可以。
winuploadpath、otheruploadpath对应的r方法也定义为了静态方法。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-05 01:28:40,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/b62d5ef52f1c06451cdadabb04078348.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Java如何使用ConfigurationProperties获取yml中的配置.doc
本文 PDF 下载地址:Java如何使用ConfigurationProperties获取yml中的配置.pdf
留言与评论(共有 0 条评论) |