0%

【SpringBoot】SpringBoot配置

关于SpringBoot的配置文件使用

一、配置文件

  • SpringBoot的配置文件有三种,properties、yml、yaml三种

1.1 正常配置修改

  • (1)properties文件
1
2
配置端口号:
server.port=8081
  • (2)yaml文件
1
2
3
配置端口号:
server:
prot: 8081

注意:在”:”后面要空一个,再接参数

1.2 给对象赋值

创建一个JavaBean对象

1
2
3
4
5
6
7
8
9
10
@Component
public class Person {
private String name;
private int age;
private boolean isMan;
private Date birthday;
private Map<String,Object> maps;
private List<String> lists;
private Dog dog;
}
  • (1)properties文件
1
2
3
配置文件
name=小白
age=1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Component
@PropertySource(value = "classpath:test.properties")//加载指定的配置文件
public class Person {
@Value("${name}")
private String name;
@Value("${age}")
private int age;
private boolean isMan;
private Date birthday;
private Map<String,Object> maps;
private List<String> lists;
private Dog dog;

}
  • (2)yaml文件
    • yaml文件不仅可以进行简单的赋值
    • 还可以赋值其他参数,集合、对象、数组…
1
2
3
4
5
6
7
8
9
10
11
配置文件
person:
name: 莱特雷
age: 22
boolean: true
birthday: 2019/12/12
maps: {key1: value1,key2: value2}
lists: [代码, 音乐, 看小电影]
dog:
name: 小白
age: 1
1
2
3
4
5
6
7
8
9
10
11
@Component
@ConfigurationProperties(prefix = "person") //绑定yaml的person
public class Person {

private String name;
private int age;
private boolean isMan;
private Date birthday;
private Map<String,Object> maps;
private List<String> lists;
private Dog dog;
  • 总结:properties的作用非常有限,所以一般都推荐使用yaml作为配置文件

1.3 yaml文件特有方法

  • (1)松散绑定
    • 即驼峰命名,配置文件中last-name和类中lastName是可以识别,并复制
    • 但要保证类中get set方法不出错
  • (2)JSR303数据校验
    • 在字段增加一层过滤器,可以保证数据的合法性
1
2
3
4
5
添加启动器依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在JavaBean进行配置
@Component
@ConfigurationProperties(prefix = "person")
@Validated //JSR303数据校验
public class Person {

@Email//规定填写数据为邮箱格式
private String name;
private int age;
private boolean isMan;
private Date birthday;
private Map<String,Object> maps;
private List<String> lists;
private Dog dog;
}
  • 具体可设置的参数
注解 说明
@Null 被注释的元素必须为null
@NotNull 被注释的元素必须不为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释元素必须为fasle
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值,小数存在精度
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值,小数存在精度
@Size(max, min) 被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(regex=) 被注释的元素必须符合指定的正则表达式
@Valid 被注释的元素需要递归验证
注解 说明
@Email 被注释的元素必须是电子邮箱地址
@Length(min=下限, max=上限) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的元素的必须非空并且size大于0
@NotBlank 被注释的元素必须不为空且不能全部为’ ‘(空字符串)
@Range(min=最小值, max=最大值) 被注释的元素必须在合适的范围内

二、配置文件的位置


三、多环境配置

  • (1)properties配置
    • 一个环境创建一个配置文件
      • 文件形式为: application-环境名.properties
    • 在默认配置文件application.properties中
      • 使用:spring.profiles.active=环境名,来进行环境切换
  • (2)yaml配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#最上面为默认环境
server:
port: 8081

#选择激活的环境
spring:
profiles:
active: dev
---
server:
port: 8082

#起环境名
spring:
profiles: dev

---
server:
port: 8083

#起环境名
spring:
profiles: test

#用"---"来分割环境

四、可以配置的参数

由于SpringBoot可以配置的参数过于多,所以不会一一列出来,而是教利用源码查找方法

  • (1)IDEA双击”shift”来进行搜索
  • (2)来ServerProperties来进行举例
  • 总结 :可以通过搜索properties寻找可以配置的属性