spring-boot peut être utilisé comme propriété de message en plaçant un fichier nommé
message.properties``` sous le chemin de classe. Au lieu de cela, si vous souhaitez placer le fichier sur n'importe quel chemin.
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
Placez le fichier de propriétés du message dans
files / mymessages.properties```.
files/mymessages.properties
hoge.message=foobar
Application.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
@Lazy
MessageSource messageSource;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
String hoge = messageSource.getMessage("hoge.message", null, null);
System.out.println(hoge);
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("file:files/mymessages");
return messageSource;
}
}
Vous pouvez spécifier un nom autre que message.properties ou spécifier plusieurs fichiers dans spring.messages.basename. Cependant, seuls les fichiers sous le chemin de classe peuvent être spécifiés ici. Même si vous écrivez
file: files / mymessages, ce sera `` `classpath *: file: files / mymessages.properties
.