[JAVA] Utiliser les propriétés du message sur le chemin du fichier pour MessageSource dans spring-boot

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.

Préparation

pom.xml


	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>

code

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;
	}
}

Mémo d'enquête

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.

Recommended Posts

Utiliser les propriétés du message sur le chemin du fichier pour MessageSource dans spring-boot
Utiliser la complétion dans Eclipse sur Mac
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1