spring boot 之 spring.profiles
2019-04-05 本文已影响0人
ithankzc
系统默认文件
可以用默认的application.properties,但是推荐用 application.yaml
区分环境
配置文件命名: application-{environment}.yaml
如本地环境开发,则可配置 application-local.yaml
如 development
环境,则可配置 application-development.yaml
如 production
环境, 则可配置 application-production.yaml
怎样在 idea 上应用本地配置文件
eg: spring.profiles.active = local
技巧
可以在本地创建 一个 application-default.yaml
的文件,spring boot 提供了 读取 default profile 的特性
@ConfigurationProperties
为类的属性赋值配置参数
我们先看一下在 application-local 配置文件中
company:
aliyun:
open-search:
access-key: sssss
access-secret: yyyyyy
host: http://opensearch-cn-hangzhou.aliyuncs.com
app-name: zzzzzz
问题来了,怎样在类中访问 配置文件的属性? 我们可以定义一个类,如
@Configuration
@ConfigurationProperties(prefix = "company.aliyun.open-search")
class OpenSearchProperties {
var appName: String = ""
var accessKey: String = ""
var accessSecret: String = ""
var host: String = ""
}
spring boot 在实例化 OpenSearchProperties 这个 bean 时就会把从 Environment 中获取属性赋值给类对应字段
指定前缀
@ConfigurationProperties(prefix = "company.aliyun.open-search")
如 company.aliyun.open-search.access-key = sssss, accessKey 就会被赋予一样的值
怎样使用
@Configuration
class OpenSearchHub(
openSearchProperties: OpenSearchProperties,
)
参考文档
ConfigurationProperties介绍
https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/html/index.html