spring boot之配置详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013934408/article/details/83617859

spring boot支持的配置文件
spring boot支持两种类型的配置文件,一种是传统的默认配置文件application.properties ,还有一种是现在被广泛推荐使用的YAML文件。书写上properties是采用键值对的形式来表示,而YAML是以类似大纲的缩进形式,这使得YAML表现形式更为清晰易读, 同时配置内容的字符量也得到显著减少:

environments:
	dev:
		url: http://dev.bar.com
		name: Developer Setup
	prod:
		url: http://foo.bar.com
		name: My Cool App

等效于

environments.dev.url=h七tp://dev.bar.com
environments.dev.name=Developer Setup
environments.prod.url=http://foo.bar.com
environments.prod.name=My Cool App

自定义参数
除了可以在Spring Boot 的配置文件中设置各个Starter 模块中预定义的配置属性, 也可以在配置文件中定义一些我们需要的自定义属性。比如在application.properties 中添加:

blog.name=springboot
blog.author=stryang

然后, 在应用中可以通过@Value 注解来加载这些自定义的参数, 比如:

@Component
public class Blog{
	@Value("${blog.name}")
	private String name;
	@Value("${blog.author}")
	private String author;
	//省略getter和setter
}

@Value 注解加载属性值的时候可以支持两种表达式来进行配置:

  • 一种是上面介绍的PlaceHolder 方式,格式为${},大括号内为PlaceHolder。
  • 另一种是使用SpEL 表达式(Spring Expression Language), 格式为#{},大括号内为SpEL 表达式。

参数引用
在application.properties中的各个参数之间可以直接通过使用PlaceHolder 的方式来进行引用:

blog.name=springboot
blog.author=stryang
blog.desc=${blog.author} is writing《${blog.name}》

使用随机数
在一些特殊情况下, 我们希望有些参数每次被加载的时候不是一个固定的值, 比如密钥、服务端口等。在SpringBoot的属性配置文件中, 可以通过使用${random}配置来产生随机的int值、long值或者string字符串,这样我们就可以容易地通过配置随机生成属性,而不是在程序中通过编码来实现这些逻辑。

${random}的配置方式主要有以下几种, 读者可作为参考使用。
#随机字符串
com.didispace.blog.value=${random.value}
#随机int
com.didispace.blog.number=${random.int}
#随机long
com.didispace.blog.bignumber=${random.long}
# 10以内的随机数
com.didispace.blog.tes七1=${random.int(l0)}
# 10-20的随机数
com.didispace.blog.test2=${random.int[l0,20]}

该配置方式可以设置应用端口等场景, 以避免在本地调试时出现端口冲突的麻烦。

猜你喜欢

转载自blog.csdn.net/u013934408/article/details/83617859