SpringBoot:配置文件解析
Posted cdwxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot:配置文件解析相关的知识,希望对你有一定的参考价值。
Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。
自定义属性
使用@value来读取配置文件的值
application.properties提供自定义属性的支持,这样我们就可以把一些常量配置在这里:
com.test.name="王先生"
com.test.address="北京市长征街168号"
然后直接在要使用的地方通过注解@Value(value=”${config.name}”)就可以绑定到你想要的属性上面
启动工程后,在浏览器输入:http://localhost:8080/read1,可以看到控制台上输入信息
使用@ConfigurationProperties
这种方式配置只能是配置熟悉比较少的,当需要配置多个熟悉时候,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.java类,顶部需要使用注解@ConfigurationProperties(prefix = “com.test”)来指明使用哪个。
使用自定义配置文件
有时候我们不希望把所有配置都放在application.properties里面,这时候我们可以另外定义一个,这里我明取名为config.properties,路径跟也放在src/main/resources下面。
我们新建一个bean类j解析config.properties,如下:
参数间引用
在application.properties中的各个参数之间也可以直接引用来使用,就像下面的设置:
com.test.name="王先生"
com.test.address="北京市长征街168号"
com.test.nameAndAdress=${com.test.name}在此${com.test.address}
可以只是用nameAndAdress这个属性就好。
Profile-多环境配置
在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。
Spring Boot中多环境配置文件名需要满足application-{profile}.properties
的格式,其中{profile}
对应你的环境标识,比如:
application-dev.properties
:开发环境application-test.properties
:测试环境application-prod.properties
:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties
文件中通过spring.profiles.active
属性来设置,其值对应{profile}
值。
在application.properties中设置spring.profiles.active=dev
,就是说默认以dev环境设置
@PropertySource和InportResource
PropertySource用于解析自定义properties@PropertySource("classpath:config.properties")
InportResource导入spring xml文件InportResource("classpath:bena.xml")
springboot推荐使用bean注解
@Configuration 申明这是一个配置类相当于xml配置文件,@Bean表示这是一个Spring管理的bean
以上是关于SpringBoot:配置文件解析的主要内容,如果未能解决你的问题,请参考以下文章