Também encontro outra solução que funciona para mim. Em nosso projeto de primavera legado, usamos este método para dar aos nossos usuários possibilidades de usar essas próprias configurações:
<bean id="appUserProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="ignoreResourceNotFound" value="false"/>
<property name="locations">
<list>
<value>file:./conf/user.properties</value>
</list>
</property>
</bean>
E em nosso código, para acessar essas propriedades, precisamos escrever algo assim:
@Value("#{appUserProperties.userProperty}")
private String userProperty
E se surgir uma situação em que você precisa adicionar uma nova propriedade, mas agora você não quer adicioná-la na configuração do usuário de produção, isso se tornará um inferno quando você precisar corrigir todos os seus contextos de teste ou seu aplicativo falhará comece.
Para lidar com esse problema, você pode usar a próxima sintaxe para adicionar um valor padrão:
@Value("#{appUserProperties.get('userProperty')?:'default value'}")
private String userProperty
Foi uma verdadeira descoberta para mim.
18GerPD8fY4iTbNpC9hHNXNHyrDMampPLA
é? Tenho certeza de que todo mundo sabe e eu sou simplesmente estúpido, mas apenas no caso ...