SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
默认配置文件名称:application
在同一级目录下优先级为:properties>yml > yaml
例如:配置内置Tomcat的端口
![](https://i-blog.csdnimg.cn/blog_migrate/f4a9bab9c43cd1d14be9aa24cb112223.png)
SpringBoot配置-获取application.yml配置文件中的数据
![](https://i-blog.csdnimg.cn/blog_migrate/911c5b8300705693a8a24b9e77c81bac.png)
方法一:通过@Value注解获取
![](https://i-blog.csdnimg.cn/blog_migrate/5b338585716e8fbd56317ac441e85058.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/6945a8081153d24056ee7805d03fc38e.png)
方法二:通过Environment(环境)对象获取
![](https://i-blog.csdnimg.cn/blog_migrate/eb772968a681b2d9e899882e77d04f78.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/9a5a28b9d0b42ba060f1ab61d67a7b7c.png)
方法三:通过@ConfigurationProperties来通过把配置文件里的属性信息加载一个类的对象里完成配置信息
前缀定义了哪些外部属性将绑定到类的字段上
根据 Spring Boot 宽松的绑定规则,类的属性名称必须与外部属性的名称匹配
我们可以简单地用一个值初始化一个字段来定义一个默认值
类本身可以是包私有的
类的字段必须有公共 setter 方法
注意:prefix(前缀)一定要写。prefix一定要和yml里的一致,否则会报错。
![](https://i-blog.csdnimg.cn/blog_migrate/f423ac64b8e27ebb6798e87c1aaf9563.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c4888d4ff1cb2ed8d25b11682329e727.png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/ee9dbcb8c8f1cdbbd20de9da62f66eb3.png)
SpringBoot 多环境配置 -profile
为什么需要多环境配置:
profile是用来完成不同环境下,配置动态切换功能的。
profile配置方式
多profile文件方式:提供多个配置文件,每个代表一种环境。
application-dev.properties/yml 开发环境
application-test.properties/yml 测试环境
application-uat.properties/yml 用户模拟环境
application-pro.properties/yml 生产环境(正式上线环境 )
yml多文档方式:
在yml中使用 --- 分隔不同配置
profile激活方式
配置文件: 在配置文件中配置:spring.profiles.active=dev
虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
命令行参数:java –jar xxx.jar --spring.profiles.active=dev
![](https://i-blog.csdnimg.cn/blog_migrate/e03ce634fad226baf656a239359246ba.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6a30c00928130efb3943d89e16afef6a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c62aabbf8136bbe1589fee42228f5b8d.png)
SpringBoot配置-项目内部配置文件加载顺序
加载顺序为上文的排列顺序,高优先级配置的属性会生效
file:./config/:当前项目下的/config目录下
file:./ :当前项目的根目录
classpath:/config/:classpath的/config目录
classpath:/ :classpath的根目录
SpringBoot配置-项目外部配置加载顺序
外部配置文件的使用是为了对外部文件的配合
1.命令行
java-jarapp.jar--name="Spring“ --server.port=9000
2.指定配置文件位置
java -jar myproject.jar --spring.config.location=e://application.properties
3.外部不带profile的properties文件
classpath:/config/application.properties classpath:/application.properties