对于Spring Boot应用程序,我们使用application.yml
或.properties
变体编写特定于Spring的应用程序配置。例如:
server:
port: 7779
management:
endpoints:
web:
exposure:
include: gateway
是否有一些约定如何命名应用程序域特定的配置?哪里可以放置此配置文件:在相同的application.yml
中还是应该是单独的文件?如何命名这些属性?范例
adder-service:
max-number : 33
some-other:
a:
b: 44
我们是否应为此应用程序特定的配置另外生成META-INF/additional-spring-configuration-metadata.json
?
一种好的做法是将配置文件视为具有默认值的配置结构:
myapp:
myprop1: abc
myprop2: xyz
实际值来自环境:
MYAPP_MYPROP1=abc
MYAPP_MYPROP2=xyz
在具有特定于应用程序的前缀的代码中使用type-safe configuration。
@ConfigurationProperties("myapp")
class MyAppProperties {
private String myprop1;
private String myprop2;
// getters & setters ...
}
如果配置是针对特定部署场景的,则将其放入由Spring配置文件管理的单独文件中,例如。 application-aws.yml
等
spring.profiles.active=aws