propertysourcesplaceholderconfigurer leer example configurationproperties application java spring spring-boot

java - leer - spring boot application.properties example



Spring Boot-Anidando ConfigurationProperties (1)

En realidad, podría usar las ConfigurationProperties anidadas seguras de tipos.

@ConfigurationProperties public class DatabaseProperties { private Connection primaryConnection; private Connection backupConnection; // getter, setter ... public static class Connection { private String host; // getter, setter ... } }

Ahora puede establecer la propiedad primaryConnection.host .

Si no desea utilizar clases internas, puede anotar los campos con @NestedConfigurationProperty .

@ConfigurationProperties public class DatabaseProperties { @NestedConfigurationProperty private Connection primaryConnection; // Connection is defined somewhere else @NestedConfigurationProperty private Connection backupConnection; // getter, setter ... }

Consulte también la Guía de referencia y los Documentos de enlace de configuración .

Bota de primavera viene con muchas características interesantes. Mi favorito es un mecanismo de configuración de tipo seguro a través de @ConfigurationProperties y los correspondientes archivos yml / properties. Estoy escribiendo una biblioteca que configura la conexión Cassandra a través del controlador Java Datastax. Quiero permitir que los desarrolladores configuren objetos Cluster y Session simplemente editando el archivo yml. Esto es fácil en el arranque de primavera. Pero quiero permitirle que configure múltiples conexiones de esta manera. En el framework PHP - Symfony es tan fácil como:

doctrine: dbal: default_connection: default connections: default: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 customer: driver: "%database_driver2%" host: "%database_host2%" port: "%database_port2%" dbname: "%database_name2%" user: "%database_user2%" password: "%database_password2%" charset: UTF8

(este fragmento proviene de la documentación de Symfony )

¿Es posible en spring-boot usando ConfigurationProperties? ¿Debo anidarlos?