大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
怎么在springboot中读取自定义配置文件节点?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的荣成网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!首先在默认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 = "shenniu") 标记,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://www.a.com
映射的实体还是用上面的,不过实体上需要增加注解 @PropertySource("classpath:my.properties") 表示自定义文件源,并且同样需要prefix来指定节点前缀;我们增加如下展示接口:
@Autowired private ShenniuConf shenniuConf; @GetMapping("/conf/des") public String getDes() { return shenniuConf.getDes(); }
实体映射多层级节点的值
通常自定义配置节点都有层级关系,那我们实体有怎么来获取到不同层级的属性值呢,事实上只需要在实体类里面通过类层级关系来表示就行了,如上面ShenniuConf实体里面的Url实体类属性;
这里添加一个测试接口:
@Autowired private ShenniuConf shenniuConf; @GetMapping("/conf/myconf") public ShenniuConf getBlogurl() { return shenniuConf; }
不出意外能得到如下结果:
springboot是什么
springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
看完上述内容,你们掌握怎么在springboot中读取自定义配置文件节点的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!