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

2021年10月21日

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

使用例
1.Action側クラス

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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)
//処理コード
}
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) //処理コード }
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の設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<bean id="messageSource"
class ="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name ="basename" value="classpath:message"/>
</bean>
<bean id="messageSource" class ="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name ="basename" value="classpath:message"/> </bean>
<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