public class DataSourceMessageSource
extends org.springframework.context.support.AbstractMessageSource
implements org.springframework.beans.factory.InitializingBean
本クラスはクラスロード時にDBを参照し、DB中のメッセージリソースからメッセージ もしくはメッセージフォーマットを決定するクラスである。 また、国際化に対応しており、言語コード、国コード、バリアントコードによる ロケール判別が可能である。
使用方法<bean id = "messageSource" class = "jp.terasoluna.fw.message.DataSourceMessageSource"> <property name = "DBMessageResourceDAO"> <ref bean = "dBMessageResourceDAO"></ref> </property> </bean>解説
<bean id = "messageSource" class = "jp.terasoluna.fw.message.DataSourceMessageSource"> <property name = "DBMessageResourceDAO"> <ref bean = "dBMessageResourceDAO"></ref> </property> <property name = "defaultLocale"> <value>ja</value> </property> </bean>解説
修飾子とタイプ | フィールドと説明 |
---|---|
protected Map<Locale,Properties> |
cachedMergedProperties
ロケール毎にメッセージコードとメッセージをマップで保持する。
|
protected Map<String,Map<Locale,MessageFormat>> |
cachedMessageFormats
メッセージコード毎にロケールとメッセージフォーマットをマップで保持する。
|
protected DBMessageResourceDAO |
dbMessageResourceDAO
メッセージリソースを取得するDAO。
|
protected Locale |
defaultLocale
ロケールが指定されていない場合のデフォルトロケール。
|
コンストラクタと説明 |
---|
DataSourceMessageSource() |
修飾子とタイプ | メソッドと説明 |
---|---|
void |
afterPropertiesSet()
Webアプリケーションコンテキスト起動時に実行される。
|
protected Locale |
createLocale(DBMessage message)
Localeオブジェクトを生成する。
|
protected List<Locale> |
getAlternativeLocales(Locale locale)
メッセージを決定する際のキーを生成する。
|
protected MessageFormat |
getMessageFormat(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージフォーマット
を決定する。
|
protected Properties |
getMessages(Locale locale)
ロケールに対応する全てのメッセージを返却する。
|
protected String |
internalResolveCodeWithoutArguments(String code,
Locale locale)
メッセージコードとロケールからメッセージを決定する。
|
protected void |
mapMessage(DBMessage message)
メッセージリソースをロケール別に整理し、メッセージコードとメッセージ本体
をセットにして、ハッシュテーブルに格納する。
|
protected void |
readMessagesFromDataSource()
DAOからメッセージリソースを取得し、整理する。
|
void |
reloadDataSourceMessage()
メッセージリソースをリロードする。
|
protected MessageFormat |
resolveCode(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージフォーマットを
決定し、メッセージフォーマットを返却する。
|
protected String |
resolveCodeWithoutArguments(String code,
Locale locale)
引数として渡されたメッセージコードとロケールからメッセージを決定し、
メッセージを返却する。
|
void |
setDbMessageResourceDAO(DBMessageResourceDAO dbMessageResourceDAO)
DBMessageResourceDAOを設定する。
|
void |
setDefaultLocale(Locale defaultLocale)
デフォルトロケールを設定する。
|
getCommonMessages, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, resolveArguments, setCommonMessages, setParentMessageSource, setUseCodeAsDefaultMessage
protected final Map<String,Map<Locale,MessageFormat>> cachedMessageFormats
protected Map<Locale,Properties> cachedMergedProperties
protected Locale defaultLocale
protected DBMessageResourceDAO dbMessageResourceDAO
public void setDefaultLocale(Locale defaultLocale)
defaultLocale
- デフォルトのロケール。AbstractMessageSource.getMessageInternal(java.lang.String, java.lang.Object[], java.util.Locale)
,
Locale.getDefault()
public void setDbMessageResourceDAO(DBMessageResourceDAO dbMessageResourceDAO)
dbMessageResourceDAO
- 全てのメッセージリソースを取得するDAOpublic void afterPropertiesSet()
afterPropertiesSet
インタフェース内 org.springframework.beans.factory.InitializingBean
cachedMergedProperties
public void reloadDataSourceMessage()
protected void readMessagesFromDataSource()
protected void mapMessage(DBMessage message)
message
- メッセージリソースを格納したDBMessageオブジェクト。protected Locale createLocale(DBMessage message)
message
- メッセージリソースIllegalArgumentException
- メッセージコード及びメッセージが存在するメッセージリソースに
ロケールが設定されていない。かつ、デフォルトロケールも設定出来ない
場合のエラー。protected Properties getMessages(Locale locale)
locale
- メッセージのロケール。protected String resolveCodeWithoutArguments(String code, Locale locale)
resolveCodeWithoutArguments
クラス内 org.springframework.context.support.AbstractMessageSource
code
- メッセージコードlocale
- メッセージのロケールprotected String internalResolveCodeWithoutArguments(String code, Locale locale)
code
- メッセージコードlocale
- メッセージのロケールprotected List<Locale> getAlternativeLocales(Locale locale)
locale
- ロケールオブジェクトprotected MessageFormat resolveCode(String code, Locale locale)
resolveCode
クラス内 org.springframework.context.support.AbstractMessageSource
code
- メッセージコードlocale
- メッセージのロケールprotected MessageFormat getMessageFormat(String code, Locale locale)
code
- メッセージコードlocale
- メッセージのロケールCopyright © 2014 NTT DATA Corporation.