1. profile跟property的mapping
└── src
├── main
│ └── resources
│ ├── application.yml
│ ├── application-develop.yml
│ ├── application-production.yml
启动Spring时,通过-Dspring.profiles.active指定有效的profile,然后spring就会找到相应的property。
application.yml,这个是默认加载的文件。
如果参数传递进来的profile是develop,那么spring会按照
application.yml→application-develop.yml的顺序去下载配置文件。
如果两个文件中有重复的key,后面的develop.yml的优先等级更高。
2. module间的包含关系
spring.profiles.include:
- development
- infra
通过在配置文件中定义spring.profiles.include可以实现包含关系。
一般这种应用场景如下:
假设我们有如下几个module
– web
– batch
– infra
web跟batch都调用了infra,那么如果我们在infra里面定义了property的话,同样也需要在web跟batch里面重复定义。为了避免这种情况,就可以通过include去包含其他module里面的property文件。
# web/batch
spring.profiles.include:
- infra
# infra
aws:
access:
key: xxx
serect: yyy