Spring Boot配置文件

2019-12-25  本文已影响0人  Yanl__

1.YAML
2.properties


1.YAML

YAML:以数据为中心,比json、xml等更适合做配置文件

#yaml
server:
    port: 8081
<!--  xml -->
<server>
    <port>8081</port>
</server>

1. 基本语法

k:(空格)v: 表示一对键值对(空格必须有)
属性和值也是大小写敏感

server:
    port: 8081
    path: /hello

2. 值的写法

2.1 普通的值

k: v:
字符串默认不用加单引号或双引号
"": 双引号,不会转移字符串中的特殊字符
'': 单引号,会转移特殊字符,特殊字符只是一个普通的字符

2.2 对象、Map
对象还是k: v: 的写法

friends:
    lastName: zhangsan
    age: 20
# 行内写法
friends: {lastName: zhangsan,age: 20}

2.3 数组(List、Set)
用 -(空格)值 来表示数组中的一个元素

pets:
 - dog
 - cat
# 行内写法
pets: [dog,cat]

3.值的获取

  1. 配置文件:
person:
  name: taylor
  age: 23
  1. javabean:
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private Integer age;
  1. 测试
    可以自动注入
@SpringBootTest
class Springboot01HelloworldQuickApplicationTests {

    @Autowired
    private Person person;

    @Test
    void contextLoads() {
        System.out.println(person);
    }
}

2.properties

  1. 配置文件:
person.name=章三
person.age=22
  1. 获取值
    两种从配置文件中获取值的方式,一种Spring表示式语言直接赋值
    2.1 方式一:@ConfigurationProperties(prefix = "person")自动注入
    2.2 方式二:private String name; 在属性上注解@Value("${person.name}")
    2.3 直接给属性赋值: private String name; 在属性上注解@Value("#{369}")
@ConfigurationProperties @Value
功能 批量注入配置文件中的属性 一个一个指定
松散绑定(松散语法) 支持 不支持
SpEL 不支持 支持
JSR303数据校验 支持 不支持
复杂类型封装 支持 不支持
  1. 配置文件占位符
    3.1 随机数
    3.2 占位符获取之前的配置
    如果没有,可以用 : 来指定默认值
${random.value}  ${random.int}

${person.name:taylor}
上一篇下一篇

猜你喜欢

热点阅读