springboot读取自定义配置文件节点的方法

网友投稿 335 2023-01-31


springboot读取自定义配置文件节点的方法

今天和大家分享的是自定义配置信息的读取;近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需要等到很后面才能写了;分享这两种文章的原因主要是为了方便自己查找资料使用和对将要使用的朋友起到便捷作用;

•@Value标记读取(默认可直接读取application.yml的节点)

•实体映射application.yml的节点

•实体映射自定义配置文件的节点

•实体映射多层级节点的值

@Value标记读取(默认可直接读取application.yml的节点)

首先在默gYFyybyX认application.yml配置文件中自定义如下节点信息:

shenniu:

name: 神牛003

然后通过@Value标记来直接获取属性值,为了更好的展示数据到界面上定义了一个/conf/name接口:

@Value("${shenniu.name}")

private String name;

@GetMapping("/conf/defname")

public String getDefName() {

return this.name;

}

运行后效果如:

实体映射application.yml的节点

要用实体类映射出默认配置文件值,仅仅只需要加一个属性名称前缀就行了,当然这仅仅针对于application.yml默认文件里面的属性:

@Configuration

@ConfigurationProperties(prefix = "shenniu")

public class ShenniuConf {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

private Url url;

public Url getUrl() {

return url;

}

public void setUrl(Url url) {

this.url = url;

}

private String des;

public String getDes() {

return des;

}

public void setDes(String des) {

this.des = des;

}

public static class Url {

private String blogurl;

public String getBlogurl() {

return blogurl;

}

public void setBlogurl(String blogurl) {

this.blogurl = blogurl;

}

}

}

实体类我多增加了几个属性,为了后面测试方便;要对application.yml做配置映射只需要加上 @ConfigurationProperties(prefix = "shennigYFyybyXu") 标记,prefix的值对应自定义配置文件属性的前缀;这里增加/conf/name接口输出映射出对象的值:

@Autowired

private ShenniuConf shenniuConf;

@GetMapping("/conf/name")

public String getName() {

return shenniuConf.getName();

}

同样得到了和@Values注解一样的效果,这就表示实体和配置文件自定义属性匹配成功了,主要实体属性名称应该和配置文件节点名称保持一致;

实体映射自定义配置文件的节点

读取application.yml中属性值很简单,有时候需要自定义自己的配置文件,如这里我的my.properties,文件内容如下:

shenniu.des=我爱祖国

shenniu.url.blogurl=http://a.com

映射的实体还是用上面的,不过实体上需要增加注解 @PropertySource("classpath:my.properties") 表示自定义文件源,并且同样需要prefix来指定节点前缀;我们增加如下展示接口:

@Autowired

private ShenniuConf shenniuConf;

@GetMapping("/conf/des")

public String getDes() {

return shenniuConf.getDes();

}

实体映射多层级节点的值

通常自定义配置节点都有层级关系,那我们实体有怎么来获取到不同层级的属性值呢,事实上只需要在实体类里面通过类层级关系来表示就行了,如上面ShenniuConf实体里面的Url实体类属性;

这里添加一个测试接口:

@Autowired

private ShenniuCohttp://nf shenniuConf;

@GetMapping("/conf/myconf")

public ShenniuConf getBlogurl() {

return shenniuConf;

}

不出意外能得到如下结果:

git地址: https://github.com/shenniubuxing3    nuget发布包:https://nuget.org/profiles/shenniubuxing3

总结

以上所述是给大家介绍的springboot读取自定义配置文件节点的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,会及时回复大家的!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MyBatis Plus工具快速入门使用教程
下一篇:微信小程序实现人脸检测功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~