properties和yml
properties和yml
- https://www.jianshu.com/p/6a30fe18e850
- Spring Boot 配置文件主要分为.properties.yml
- 特殊说明:
- 1.当一个项目中存在两种格式的配置文件,并且两个配置文件中设置了相同的配置项,但值不同时,那么 properies 的优先级更高。
- 2.通常情况一个项目中只会存在一种格式的配置文件。
- (1)yml 基本写法
- yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文冒汗加空格的方式组成的,其中的空格不可省略。
- yml 中如果使用了双引号就会按照(原)语义执行,如果都不加,或者加了单引号那么默认就会将字符串中的特殊字符进行转义(本来应该换行的,转义后就不换行了)
- 在 yml 中配置对象, 这个时候需要使用注解 @ConfigurationProperties 来读取
- 该注解中有一个属性 prefix, 用于指定获取配置的前缀
- (prefix="person")
- (2) properties基本语法
- properties 是以键值的形式配置的, key=value 中间是以 “=” 连接的
配置项目端口号
- server.port=8888
连接数据库
- spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
- spring.datasource.username=root
- spring.datasource.password=123456
- 如果在项目中, 想要主动读取配置文件中的内容, 可以使用 @Value 注解来实现
- @Value 注解使用 "${}" 的格式读取
- public class TestController {
- @Value("}")
- private String mytext;
- @RequestMapping("/getMytext")
- public String getConfig(){
- return "你好: " + mytext;
- }
- }
配置文件优先级
1.内部配置文件的优先级
内部配置加载顺序
1.file:./config/:当前目录下的/config目录下
2.file:./:当期项目的根目录
3.classpath:/config/:classpath的/config目录
4.classpath:/:classpath的根目录
设置项目访问路径
server.servlet.context-path=/demo
2.外部配置文件
- 运行jar包时指定端口,会优先执行命令行指定的端口
java -jar Spring-Bootdemo-0.0.1-SNAPSHOT.jar --server.port=8080
- 指定外部配置文件路径
java -jar Spring-Bootdemo-0.0.1-SNAPSHOT.jar --spring.config.location=D:\application.properties
- 将配置文件放在jar包同级目录下,执行时会自动获取配置文件