如何记录资源包密钥丢失

时间:2010-03-05 12:48:15

标签: java spring resourcebundle

我正在使用http://java.sun.com/jsp/jstl/fmt标记库从Message Resource Bundle输出消息,该消息是在Spring配置中设置的。消息解析也可以在控制器中进行。

我想记录在资源包文件中找不到密钥的情况。

有没有人知道怎么做?

1 个答案:

答案 0 :(得分:1)

Spring使用MessageSource来检索消息,因此一个解决方案可能是编写自己的MessageSource来封装Spring,并覆盖getMessage方法以插入日志。

以下内容(未经测试):

 <bean id="messageSource" class="com.acme.LoggingMessageSource">
   <property name="pathtru">
     <bean class="org.springframework.context.support.ResourceBundleMessageSource">
       <property name="basenames">
         <list>
           <value>buttons</value>
           <value>labels</value>
         </list>    
       </property>
     </bean>
   </property>
 </bean>

与班级:

public class LoggingMessageSource implements MessageSource {

  private MessageSource pathtru;

  public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) {
    // ...
  }

  public String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException {
    // ...
  }

  public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
    // ...
  }
}

我不知道某些方法是否正在调用其他方法,所以你必须尝试一下。