持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情
配置文件要么为application.properties,要么为application.yaml
注意:SpringBoot使用一个全局的配置文件,配置文件名称是固定的
yaml的基本语法:
-
#表示注释内容
-
大小写敏感 (属性&值)
-
key: value ( kv间要用空格 ——> k:(空格) v )
-
缩进表示层级,缩进不用tab键,用空格表示,同一层级只需要左边对齐即可
-
字符串可以不加引号,若要加:' '的内容会被转义 ,“ ” 的内容不会被转义
我们原始时候使用@value()进行赋值
1.现在我们使用yaml进行赋值
- 首先在yaml文件中赋值
person:
name: 王小懒
age: 24
birthday: 2021/12/12
lists:
- code
- music
- girl
maps: {k1: g1,k2: g2}
dog:
name: 旺财
age: 3
- 然后在实体类中进行绑定
package com.whx.springboot02study.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
private boolean happy;
private List<Object> lists;
private Date birthday;
private Map<String,Object> maps;
private Dog dog;
}
通过@ConfigurationProperties(prefix = “person”)与yaml文件进行绑定完成取值。
2. 使用properties赋值
加载配置文件然后通过@value(${})进行赋值
使用properties文件时可能会遇到乱码问题,以下为解决方式
${random.int}诸如此类
- 配置yml和配置properties都可以获取到值,强烈推荐yml
- 如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下@value
- 如果说,我们专门编写了一个JavaBean来和配置文件进行映射,就直接使用@configurationProperties,不要犹豫!
3.JR303验证
Java API 规范 (JSR303) 定义了 Bean 校验的标准 validation-api,但没有提供实现。hibernate validation 是对这个规范的实现,并增加了校验注解如 @Email、@Length 等。
Spring Validation 是对 hibernate validation 的二次封装,用于支持 spring mvc 参数自动校验。接下来,我们以 spring-boot 项目为例,介绍 Spring Validation 的使用。
导入依赖:
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
</dependency>
例子:
4. 多环境配置
SpringBoot多环境配置,选择激活哪一个配置文件
4.1 首先用properties文件演示
spring.profiles.active=
等于号后写的是配置文件的名字
4.2 其次用yaml文件进行演示
相比之下,yaml文件的优势非常明显。