アプリケーションのプロパティ (構成) とローカリゼーション メッセージを区別する必要があります。どちらも JAVA プロパティ ファイルを使用しますが、異なる目的を果たし、異なる方法で処理されます。
注:以下の例では、Java ベースの Spring 構成を使用しています。構成は XML でも簡単に作成できます。Spring のJavaDocとリファレンス ドキュメントを確認してください。
アプリケーションのプロパティ
アプリケーション プロパティは、アプリケーション コンテキスト内のプロパティ ソースとしてロードする必要があります。これは、クラス@PropertySource
の注釈を介して行うことができます。@Configuration
@Configuration
@PropertySource("classpath:default-config.properties")
public class MyConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
@Value
次に、アノテーションを使用してプロパティを注入できます。
@Value("${my.config.property}")
private String myProperty;
ローカリゼーション メッセージ
ローカリゼーション メッセージは、少し話が異なります。メッセージはリソース バンドルとしてロードされ、指定されたロケールの正しい翻訳メッセージを取得するための特別な解決プロセスが用意されています。
Spring では、これらのメッセージはMessageSource
sによって処理されます。たとえば、次の方法で独自に定義できますReloadableResourceBundleMessageSource
。
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages/messages");
return messageSource;
}
Spring に注入させると、Bean からこれらのメッセージにアクセスできますMessageSource
。
@Autowired
private MessageSource messageSource;
public void myMethod() {
messageSource.getMessage("my.translation.code", null, LocaleContextHolder.getLocale());
}
<spring:message>
また、次のタグを使用して、JSP 内のメッセージを翻訳できます。
<spring:message code="my.translation.code" />