Spring ReloadableResourceBundleMessageSource配置

时间:2012-04-15 14:36:24

标签: spring configuration

我开发了一个简单的Spring应用程序,这是我的大学任务。有3个配置文件:web.xml,core-context.xml,dispatcher-servlet.xml和1个带默认属性的文件,名为messages.properties,位于/ WEB-INF /文件夹中。

在我的应用程序中,我有以下ReloadableResourceBundleMessageSource配置,它工作正常:

芯context.xml中

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  <property name="basenames" value="/WEB-INF/messages" />
  <property name="useCodeAsDefaultMessage" value="true" />
</bean>

的web.xml

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath*:core-context.xml</param-value>
</context-param>
<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

但结果是我的任务指令说我应该在dispatcher-servlet.xml中配置ReloadableResourceBundleMessageSource bean。问题是,每当我从core-context.xml中删除上述配置并将其放入dispatcher-servlet.xml时,我的本地人就不再显示了。

你能解释一下为什么会出现问题吗? 将bean配置放在core-context.xml和dispatcher-servlet.xml之间有什么区别?

1 个答案:

答案 0 :(得分:1)

你还没有发布你的dispatcher-servlet.xml,但我相信它没有被spring容器初始化,因为它没有在任何地方声明。如果您必须指定另一个名为dispatcher-servlet.xml的文件,则只需将其导入core-context.xml即可。这应该可以解决你的问题。