【Spring Boot】配置
Spring Boot默认会使用两种全局配置文件 .properties 和 .yml。比如更改一下端口号
1.yml配置文件值注入
yml文件:在为属性赋值的时候,需要使用冒号加空格。
在这之前我们需要在pom中添加依赖,这样的话就会有相关的提示了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
编写bean
最后我们在测试类中进行测试:
运行就OK了。
2.在properties中配置
其余的代码和1中的一样,值得注意的是,如果两种配置文件都写了相同的配置,那么会优先使用properties中的配置
3.使用@Value注解来绑定值
可以看到我们可以使用${},和#{}的方式来使用,
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
4.@PropertySource
用来指定使用哪一个配置文件的值
表示使用类路径下的person配置文件的值
5.@ImportResource
用来加载spring的配置文件,并且使他生效。
我们来写一个Hello
在类路径下写一个spring配置文件
要使这个文件生效需要在启动类上加上@ImportResource注解,并且指定相应的文件
然后测试一下
结果为true,表示beans.xml生效了
使用xml配置文件是我们之前使用的方式,但是Spring Boot推荐我们使用配置类的方式
6.配置文件占位符
占位符获取之前配置的值,如果没有可以是用:指定默认值。
其中
r a n d o m . v a l u e 、 {random.value}、 random.value、{random.int}、${random.long}
r a n d o m . i n t ( 10 ) 、 {random.int(10)}、 random.int(10)、{random.int[1024,65536]}
表示一些随机的值
7.Profile 切换开发环境
7.1多Profile文件
我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml
默认使用application.properties的配置;
新建两个文件,在里面更改应用的端口号
当需要使用哪一个配置文件的时候,使用以下代码就可以激活
spring.profiles.active=xxxx
7.2 yml文件配置
7.3 激活指定profile
- 在配置文件中指定 spring.profiles.active=dev
- 命令行:
java -jar jar包名.jar –spring.profiles.active=dev;
可以直接在测试的时候,配置传入命令行参数
- 虚拟机参数;
-Dspring.profiles.active=dev
8.配置文件加载位置
配置文件可以放在
–file:./config/
–file:./
–classpath:/config/
–classpath:/
而且他们是有优先级的,–file:./config/最高,高优先级会覆盖低优先级,
这个是官方文档的说法:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/boot-features-external-config.html
但是我在使用的时候只用类路径下生效,使用的是2.1.7 我也没懂原因。
具体配置文件加载顺序官方文档中也有介绍
那么在配置文件中可以配置哪些属性呢,在官方文档中可以找到:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/common-application-properties.html
英文看不懂,用插件翻译了一下
还没有评论,来说两句吧...