En mi aplicación Spring Boot, quiero crear un archivo de propiedades específicas del entorno. El tipo de empaquetado de mi aplicación en guerra y lo estoy ejecutando en tomcat integrado. Utilizo pts y ejecuto la principal desde la misma pts.
- ¿Puedo tener un archivo de propiedades específicas del entorno como la aplicación - $ {env-value} .properties?
 
En el caso anterior, env-value tendrá valores como local / devl / test / prod
¿Dónde establecer el archivo de valor de env? Para local, puedo configurarlo como el argumento jvm a través de sts
Quién lee application.properties en la aplicación Spring Boot.
¿Cómo cargar el archivo de propiedades específicas del entorno? Por ejemplo, si configuro el uid, pwd, esquema, etc. de la base de datos en el archivo de propiedades específico del entorno, en ese caso, ¿la fuente de datos podrá comprender las propiedades que contiene?
¿Puedo usar el archivo application.properties y application-local.properties al mismo tiempo?
fuente

spring.active.profilesuse-Dspring.active.profiles=local. en lugar.Respuestas:
Spring Boot ya tiene soporte para propiedades basadas en perfiles .
Simplemente agregue un
application-[profile].propertiesarchivo y especifique los perfiles a usar usando laspring.profiles.activepropiedad.-Dspring.profiles.active=localEsto cargará el
application.propertiesy elapplication-local.propertiescon las últimas propiedades que prevalecen sobre el primero.fuente
Sí tu puedes. Dado que está utilizando Spring, consulte la
@PropertySourceanotación.Anote su configuración con
@PropertySource("application-${spring.profiles.active}.properties")Puede llamarlo como quiera y agregar varios archivos de propiedad si también lo desea. Puede ser bueno si tiene más conjuntos y / o valores predeterminados que pertenecen a todos los entornos (también se puede escribir con @PropertySource {..., ..., ...}).
@PropertySources({ @PropertySource("application-${spring.profiles.active}.properties"), @PropertySource("my-special-${spring.profiles.active}.properties"), @PropertySource("overridden.properties")})Entonces puede iniciar la aplicación con el entorno
-Dspring.active.profiles=testEn este ejemplo, el nombre se reemplazará con application-test-properties y así sucesivamente.
fuente
$spring.profiles.active}es una cadena separada por matriz / coma. Por lo tanto, es posible que no haga lo que usted espera / desea que haga cuando hay varios perfiles activos.podemos hacer así:
en application.yml :
spring: profiles: active: test //modify here to switch between environments include: application-${spring.profiles.active}.ymlen application-test.yml :
server: port: 5000y en application-local.yml :
server: address: 0.0.0.0 port: 8080luego, Spring Boot iniciará nuestra aplicación como deseamos.
fuente
Mi punto, de esta manera no se pide al desarrollador que cree todo el entorno relacionado de una sola vez, lo que genera el riesgo de exponer la configuración de producción al desarrollador final.
según 12-Factor, no debe ser específico del medio ambiente, residir solo en el medio ambiente.
¿Cómo lo hacemos para CI CD?
fuente