Ich habe zwei messages.properties
Dateien. Eine befindet sich in resources
und eine andere befindet sich außerhalb meiner .jar-Datei in einem Verzeichnis mit dem Namen etc
.Spring Boot: externe messages.properties hinzugefügt werden, aber nicht verwendet
Das ist meine PropertiesConfiguration Klasse:
@Configuration
public class PropertiesConfiguration {
@Bean
public PropertyPlaceholderConfigurer properties() {
final PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
ppc.setIgnoreResourceNotFound(true);
final List<Resource> resourceLst = new ArrayList<Resource>();
resourceLst.add(new FileSystemResource("etc/application.properties"));
resourceLst.add(new FileSystemResource("etc/messages.properties"));
resourceLst.add(new FileSystemResource("etc/messages_et.properties"));
ppc.setLocations(resourceLst.toArray(new Resource[]{}));
return ppc;
}
}
In den Protokollen ich sehe:
11:18:43.764 INFO [main] PropertyPlaceholderConfigurer - Loading properties file from file [C:\Users\deniss\IdeaProjects\repgen\etc\application.properties]
11:18:43.764 WARN [main] PropertyPlaceholderConfigurer - Could not load properties from file [C:\Users\deniss\IdeaProjects\repgen\etc\application.properties]: etc\application.properties (The system cannot find the file specified)
11:18:43.764 INFO [main] PropertyPlaceholderConfigurer - Loading properties file from file [C:\Users\deniss\IdeaProjects\repgen\etc\messages.properties]
11:18:43.764 INFO [main] PropertyPlaceholderConfigurer - Loading properties file from file [C:\Users\deniss\IdeaProjects\repgen\etc\messages_et.properties]
Wie ich verstehe meine messages.properties
von etc
geladen wird. Obwohl die Anwendung funktioniert, werden die Werte nicht verwendet. Sie kommen von Standard messages.properties
in meinem resources
Projektordner. Mache ich etwas falsch?
Sie eine Nachrichtenquelle wollen, aber Sie verwenden Eigenschaft Platzhalter –
@sashok_bg Sie richtig sind. Ich habe eine weitere @Configuration-Bean zu meinem Projekt hinzugefügt. '@Bean \t public ResourceBundleMessageSource messageSource() {' Das Problem ist, dass ich nicht weiß, wie man 'messageSource.setBasename (" ") auf die Dateien außerhalb meiner .jar zeigt. '" classpath "' funktioniert offensichtlich nicht. –
Laut Federdocs ist es nur möglich, einen Klassenpfad hinzuzufügen, dh innerhalb der .jar. Schade. –