yml和properties的学习

yml和properties

都属于SpringBoot的配置文件,他是一个全局作用的文件,文件名是固定的。

作用

·可以用来修改SpringBoot中由于自己自动配置的默认值,并且当你在这里边配置完成后,SpringBoot会在底层自动给我们将这些修改参数配置好。

yml和properties的语法大致一样,只是在表达上可能或有区别

1、yml的基本语法

①他使用键值对来表示:key:【空格】value的形式;
②他以空格的缩进来表示配置中的层级关系,只要是对齐的数据默认为同一级;
③他对于属性和值的大小写是敏感的。

2、值的写法

①字面量值的写法

普通的值(数字、字符串、Boolean)
表示:k: v--------如果是字面量的话直接写
-----------------------对于字符串来说,默认都不需要加上单引号和双引号
注意:如果使用双引号,则他表示不会转义字符串,里边的特殊字符都会作为他自己本身的含义来实现,例如:

name:“张三  \n 很帅”:输出结果为
张三
很帅

在这里将\n转义为它本身的意思为换行
如果使用单引号,不会转义特殊字符,特殊字符最终只是普通的字符串输出
例如:

name:‘张三  \n 很帅’
输出结果:张三 \n很帅

这就是区别。

②对象、Map(属性和值)(键值对)

表示: k: v
在下一行来写对象和值的关系,注意缩进就行。

cat:
	name: 九灵夜猫
	age: 1

对象写法的另一种方式:

cat: {
    
    name:九灵夜猫, age: 1}

③数组(list、set)

使用‘-值’来表示数组中的一个元素

pets:
	-cat
	-xiaoji 
	-dog

他还有另一只写法:

扫描二维码关注公众号,回复: 12429888 查看本文章
pets: [cat,xiaoji,dog]

我们现在来写一个例子

1、首先创建JavaBean

@Component
@ConfigurationProperties(prefix = "school")

public class School {
    
    
    private String address;
    private Date year;
    private BigDecimal size;

    private Map<String, Object> maps;
    private List<Object> objectList;
    private Grade grade;

2、yml配置数据值

school:
  address: 江南
  year: 1966/6/22
  size: 1500.3
  maps:
    m1: 20
    m2: 568
  objectList:
    - qinghua
    - beida
  grade: {
    
    num: 8,mathTeach: zhangsan}

3、测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootHelloWorld.class)
public class ymlDemoTest {
    
    

  @Autowired
  private School school;
  @Test
  public void test(){
    
    

      System.out.println(school.toString());
  }
}

4、结果

School{
    
    address='江南', year=Wed Jun 22 00:00:00 CST 1966, size=1500.3, maps={
    
    m1=20, m2=568}, objectList=[qinghua, beida], grade=Grade{
    
    num=8, mathTeach='zhangsan'}}

properties

school.address=jiangnan
school.size=20
school.year=2022/6/3
school.grade.num=12
school.grade.mathTeach=zhangsan
school.maps.m1=1
school.maps..m2=2
school.object-list=111,222,333

运行结果

School{
    
    address='jiangnan', year=Fri Jun 03 00:00:00 CST 2022, size=20, maps={
    
    m1=1, m2=2}, objectList=[111, 222, 333], grade=Grade{
    
    num=12, mathTeach='zhangsan'}}

大概就是个这吧!

猜你喜欢

转载自blog.csdn.net/weixin_43691960/article/details/112557720