「Spring」@Resourceアノテーションでメッセージソースを取得

2021年10月21日

構文
@Resource(name ="xxx")
protected MessageSource messageResource;
@Resource アノテーションは、クラス、メソッド、フィールドに対して指定可能なアノテーションで、リソースへの参照を宣言するためのものです。
@Resource の name 要素はリソースの JNDI 名です。
SpringFramework のデフォルトの動作としては、bean 名を対象とします。
未指定の場合は、フィールド名やメソッド名から導き出された名前を使用します。

使用例
1.Action側クラス

import org.springframework.context.MessageSource;
public class UserAction {
   
   /*@Resourceによる注入*/
  @Resource(name = "messageSource")
  protected MessageSource messageResource;
  
  protected Locale locale;
      
 public String getInfo() {
 
   /*プロパティファイルのキー「user.file.path」の取得*/
   String fileUrl = messageResource.getMessage("user.file.path",null,locale) 
    //処理コード
 }

2.general-context.xmlの設定

<bean id="messageSource"
     class ="org.springframework.context.support.ReloadableResourceBundleMessageSource">
       <property name ="basename" value="classpath:message"/>
</bean>

説明
idの定義:messageSource
basename:メッセージファイルの場所を指定
classpath:プロパティファイル名

3.message.propertiesの定義
user.file.path=https://192.168.xxx.xxx/all

SpringMVC

Posted by arkgame