复制模块
- 删除之前工程的文件,
只留下pom.xml 和 src 文件 - 修改pom文件中的
artifactId与新工程一致 - 如果不修改name标签的话,尽量把name标签和description标签都删除
- 保留备份即可
属性配置(application.properties)
- 每一个配置对应的是技术,如果不引用某种技术,配置文件中就不会有代码提示
- 官方配置文档
# 服务器端口配置
server.port=80
# 修改banner
#spring.main.banner-mode=console
# 修改banner图
#spring.banner.image.location=ysg.jpg
# 日志
logging.level.root=info
配置文件三种类型
三种共存时properties > yml > yaml-
相同的属性会采用优先级,不同配置则都会保留配置
-
properties
yml
yaml
添加配置文件

yml配置文件
-
优点
-
容易阅读
容易与脚本交互
以数据核心,重数据轻格式
-
语法规则
-
大小写敏感
属性层级关系使用多行描述,每行结尾使用冒号结束
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格
属性值前面添加空格(属性名和属性值之间使用
冒号+空格作为分隔)
-
#表示注释
- yml文件中的各种数据格式
server:
port: 81
country: china
party: true
birthday: 1949-10-01
null: ~
user:
name: ssc
age: 23
a:
b:
c:
d: 5
likes:
- game
- music
- sleep
-
likes1: [game,music,sleep]
users:
-
name: zhangsan
age: 18
-
name: wangwu
age: 23
users1:
- name: zhangsan
age: 18
- name: wangwu
age: 23
users2: [{name:zhangsan,age:18},{name:lisi,age:17}]
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
读取yml文件的数据
- 注解
@Value配合SpEL读取单个数据,多个数据按层级读取
@Value("${country}")
private String country1;
@Value("${user.name}")
private String name1;
@Value("${likes[1]}")
private String likes1;
@Value("${users[0].age}")
private String age1;
@Value("${server.port}")
private String port;
变量引用 & 转义字符
baseDir: c:\windows
tempDir: ${baseDir}\temp
tempDir1: "${baseDir}\temp \t1 \t2 \t3 \t4"
@Value("${tempDir}")
private String tempDir;
@Value("${tempDir1}")
private String tempDir1;
读取全部yml属性
- 使用Environment 对象封装全部信息
- 使用@Autowired自动装配数据到Environment 对象中
- env.getProperty(“server.port”)读取不同的属性
@Autowired
private Environment env;
System.out.println(env.getProperty("server.port"));
System.out.println(env);
读取yml引用数据类型(常用)
# 需要被读取引用数据类型
datasource:
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis
username: root
password: 123456
@Component
@ConfigurationProperties(prefix = "datasource")
@Data
public class MyDataSource {
private String driver;
private String url;
private String username;
private String password;
}
System.out.println(myDataSource);