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

image.png

技巧

可以在本地创建 一个 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

上一篇下一篇

猜你喜欢

热点阅读