springboot读取自定义配置文件节点
今天和大家分享的是自定义配置信息的读取;近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需要等到很后面才能写了;分享这两种文章的原因主要是为了方便自己查找资料使用和对将要使用的朋友起到便捷作用;
- @Value标记读取(默认可直接读取application.yml的节点)
- 实体映射application.yml的节点
- 实体映射自定义配置文件的节点
- 实体映射多层级节点的值
@Value标记读取(默认可直接读取application.yml的节点)
首先在默认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读取自定义配置文件的几种方法
一.读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. ...
- SpringBoot读取自定义配置文件
自定义配置文件 my-config.properties bfxy.title=bfxy bfxy.name=hello spring boot! bfxy.attr=12345 配置文件类 appc ...
- Springboot 之 自定义配置文件及读取配置文件
本文章来自[知识林] 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两 ...
- Springboot 之 自定义配置文件及读取配置文件注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以(下划线的坑,坑了我两天..特此纪念)
注意:配置文件中的字符串不要有下划线 .配置中 key不能带下划线,value可以 错误的.不能读取的例子: mySet .ABAP_AS_POOLED = ABAP_AS_WITH_P ...
- jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法
jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法 用系统属性System.getProperty("user.dir")获得执行命令的目录(网上 ...
- SpringBoot读取外部配置文件的方法
SpringBoot读取外部配置文件的方法 Spring高级之注解@PropertySource详解(超详细) 1.@PropertySource(value = {"classpath:c ...
- springboot读取自定义properties配置文件方法
1. 添加pom.xml依赖 <!-- springboot configuration依赖 --> <dependency> <groupId>org.sprin ...
- springboot下自定义配置文件,并在项目里读取的方法
首先 pom文件引入springboot文件处理器 <dependency> <groupId>org.springframework.boot</groupId> ...
- springboot读取外部配置文件
springboot项目打成jar包后不好进行配置文件修改,可设置为读取外部配置文件,方便进行配置修改. 步骤: 1.将jar包中的application.properties配置文件复制到自定义路径 ...
随机推荐
- Spring定时任务(一):SpringTask使用
背景:在日常开发中,经常会用到任务调度这类程序.实现方法常用的有:A. 通过java.util.Timer.TimerTask实现. B.通过Spring自带的SpringTask. C. 通过Spr ...
- 从has no method 'tmpl'谈起
最近做一个相对比较功能专业化的应用系统,其中今天Leader提出的功能修改需求有点smart table的意思,其中有个界面修改由于用Dom操作太麻烦了,于是想用用很久之前在学习jQuery API中 ...
- 畅通工程-HZNU寒假集训
畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只 ...
- oracle数据库语句积累
1.从一个表选出数据更新另一个表(后面的exists一定要加) update jqhdzt set shid = (select shid from v_plat_userjqinfo t where ...
- AUTOSAR ArcticCore重构 - for_each_HOH
Arctic Core是AUTOSAR的实现,早期版本是开源的. 基本问题 在ARM架构下对CAN driver的实现(arch/arm/arm_cm3/drivers/Can.c)中,有这样一段代码 ...
- css多类选择器
<!DOCTYPE html> <html lang="zh-CN"> <head> <style type="text/css ...
- android sqlite no such table
今天在学习android SQLite出现android sqlite no such table错误提示,提示的意思我没有创建我要插入的表,网上也没有搜索一下,也尝试了,发现还是没有解决到我的问题, ...
- Python 处理时间的模块
1.由日期格式转化为字符串格式的函数为: datetime.datetime.strftime().date() 2.由字符串格式转化为日期格式的函数为: datetime.datetime.strp ...
- Map的四种遍历
//Map的四种遍历方法 public static void main(String[] args) { Map<String, String> map = new HashMap< ...
- maven安装和配置及创建maven项目
(1)下载maven,下载成功后,解压到本地磁盘 里面包含这几项 (2)配置maven环境变量MAVEN_HOME.path (3)最后检验配置是否成功:用win键+R,来打开命令行提示符窗口,即Do ...