example actuator java properties spring-boot configurationproperty

java - actuator - Spring-boot: establece el valor por defecto en propiedades configurables



spring environments (2)

Tengo una clase de propiedades a continuación en mi proyecto de arranque de primavera.

@Component @ConfigurationProperties(prefix = "myprefix") public class MyProperties { private String property1; private String property2; // getter/setter }

Ahora, quiero establecer el valor predeterminado en alguna otra propiedad en mi archivo application.properties para property1 . Similar a lo que hace el ejemplo siguiente usando @Value

@Value("${myprefix.property1:${somepropety}}") private String property1;

Sé que podemos asignar un valor estático como en el ejemplo a continuación donde "valor predeterminado" se asigna como valor predeterminado para la property ,

@Component @ConfigurationProperties(prefix = "myprefix") public class MyProperties { private String property1 = "default value"; // if it''s static value private String property2; // getter/setter }

¿Cómo hacer esto usando la clase @ConfigurationProperties (en lugar de propiedades de configuración de tipos seguros) en el arranque de primavera, donde mi valor predeterminado es otra propiedad?


En spring-boot 1.5.10 (y posiblemente antes), la configuración de un valor predeterminado funciona de acuerdo con la forma sugerida. Ejemplo:

@Component @ConfigurationProperties(prefix = "myprefix") public class MyProperties { @Value("${spring.application.name}") protected String appName; }

El @Value predeterminado de @Value solo se usa si no se invalida en su propio archivo de propiedades.


Verifique si property1 se configuró usando un @PostContruct en su clase MyProperties. Si no fuera así, puedes asignarlo a otra propiedad.

@PostConstruct public void init() { if(property1==null) { property1 = //whatever you want } }