Mit dieser Klasse überschreiben Sie eine bereits festgelegte @PropertySource in einer anderen Config-Klasse.So überschreiben Sie Spring 3.1 @PropertySource, um IgnoreResourceNotFound & IgnoreUnresolvablePlaceholders festzulegen
@Configuration
@PropertySource({ "classpath:${env.placeholder}/app.properties" })
public class PropertyOverrideConfig {
}
Aber immer wenn die Datei oder der Platzhalter fehlt, wird der Kontext geladen. Ich muss die folgenden Flags auf diese geladene Annotationseigenschaft setzen, damit sie überspringt, wenn sie die Eigenschaft nicht finden kann.
setIgnoreResourceNotFound(true);
setIgnoreUnresolvablePlaceholders(true);
Question1: Was den geeigneten Weg wäre, diesen Flags für die @PropertySource zu setzen?
Updates: Versucht ein @Bean zur selben Klasse, ohne dass Annotation Hinzufügen Bezug this Seite, es ist nicht die Eigenschaft Datei entweder Kommissionierung. Ich habe keine XML-Konfiguration.
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
final PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
Resource[] resources = new ClassPathResource[ ] {
new ClassPathResource("classpath:${env.placeholder}/app.properties") };
pspc.setLocations(resources);
pspc.setIgnoreResourceNotFound(true);
pspc.setIgnoreUnresolvablePlaceholders(true);
return pspc;
}
Question2: Ich bin sicher, dass ich etwas fehle, konnte aber nicht herausfinden, was es ist, jede Hilfe wäre toll.
Sind Sie sicher, dass keine anderen PropertySourcesPlaceholderConfigurer-Instanzen registriert sind? Vielleicht sollten Sie die Annotated-Methode '@ Bean' machen, die PropertySourcesPlaceholderConfigurer statisch zurückgibt (wie das Java-Dokument für' @ Bean' empfiehlt) –
Danke @BorisTreukhov, ich habe die Statistik beim Posten verpasst. In der Zwischenzeit, was passieren würde, wenn ich die gleiche 'PropertySourcesPlaceholderConfigurer' bereits Bean auf einer anderen Config registriert habe ?? – raksja
Ich erinnere mich nicht genau, aber Sie können mehrere PropertySourcesPlaceholderConfigurers haben (und sie verschiedene Platzhalter Präfixe/Suffixe angeben) - vielleicht gibt es einen anderen Platzhalterkonfigurator, die Beschwerden über nicht auflösbare Platzhalter –