javaBean复杂属性和Yaml配置还能这么玩
先准备一个 javaBean
,后续的举例都会针对这个bean里面的属性,你要是嫌弃麻烦的话直接把我的bean
复制到你的idea
里面哦。
/**
* @author suke
*/
@Data
@ConfigurationProperties("suc.www")
public class Suke {
private String username;
private Integer userAge;
private byte userSexy;
private String[] bestFriends;
private List<String> hobbies;
private List<Suke> sukes;
private Map<String,String> nickName;
private Map<String,List<Suke>> allFriends;
private Set<String> s;
}
分步说明
下面的举例要是还不会的话
还有以下的配置前缀均为下面的前缀,后续举例不再加
#前缀
suc:
www:
基本数据类型
或者包装数据类型
比较简单直接写就完事了
username: suke
user-age: 24
user-sexy: 1
- 数组或者普通类型的
List
# array 数组 String[] bestFriends
#best-friends: [aa,bb,cc] #这种也是可以的
best-friends:
- dd
- ee
# List List<String> hobbies
hobbies:
- eat
- drink
- 写博客 :xxxxx
- 写公众号:苏克分享
- 稍微复杂点的
List
中嵌套对象
# list List<Suke>
sukes:
- {username: 3001,user-age: 24,user-sexy: 1}
- {username: 3002,user-age: 24,user-sexy: 0}
- username: 3003
user-age: 24
user-sexy: 1
- 普通类型键值对的
Map
(括号中的KV键值对无需分割空格
)
# map Map<String,String>
nick-name: {aa:suke01,bb:suke02}
- 复杂键值对的
Map
,比如值为List
,且List
中是对象(括号中的对象属性和值之间必须要有空格分割
)
# map Map<String,List<Suke>>
all-friends:
first: # 表示第一个K,下面的表示List<Suke> 对象集合
- {username: 1001,user-age: 24,user-sexy: 1}
- username: 1003
user-age: 24
user-sexy: 1
second: # 表示第二个K和对象的V值
- {username: 2001,user-age: 24,user-sexy: 1}
- set集合
# set Set<String>
s:
- aa
- bb
- cc
小总结
普通map
属性映射时键值对写的时候中间无需空格分割,但是对象键值对映射时必须加空格array
数组或List
集合或者set
集合属性映射时有各种形式 逗号分割加括号(aa,bb,cc
)、数组形式 ([aa,bb,cc]
)、回车后横杠 (- aa 换行 - bb 换行 -cc
)- 当然数组中有对象的时候,可以用键值对也可以用横杠表示
sukes:
- {username: 3001,user-age: 24,user-sexy: 1}
- {username: 3002,user-age: 24,user-sexy: 0}
- username: 3003
user-age: 24
user-sexy: 1
- 还有有时候自己手写的
javaBean
,作为配置文件属性时,没法自动提示
,那就加入下面的maven
依赖吧(生产环境项目打包的时候去掉就可以)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
来源肯定是官网了:
最后
- 求赞求关注,有问题请留言
- 首发公众号:苏克分享
哦对了,上述javaBean的全部配置均在下面
suc:
www:
username: suke
user-age: 24
user-sexy: 1
# array String[] bestFriends
#best-friends: [aa,bb,cc] #这种也是可以的
best-friends:
- dd
- ee
# list List<String> hobbies
hobbies:
- eat
- drink
- 写博客 :xxxxx
- 写公众号:苏克分享
# list List<Suke>
sukes:
- {username: 3001,user-age: 24,user-sexy: 1}
- {username: 3002,user-age: 24,user-sexy: 0}
- username: 3003
user-age: 24
user-sexy: 1
# map Map<String,String>
nick-name: {aa:suke01,bb:suke02}
# map Map<String,List<Suke>>
all-friends:
first:
- {username: 1001,user-age: 24,user-sexy: 1}
- username: 1003
user-age: 24
user-sexy: 1
second:
- {username: 2001,user-age: 24,user-sexy: 1}
# set Set<String>
s: [aa,bb,cc]
# - aa
# - bb
# - cc
评论区