复制模块
- 删除之前工程的文件,
只留下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
添加配置文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/27727863317c2b77cef55b35fa01aa29.png)
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}]
读取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);