У меня есть веб-приложение, в котором я определяю базовый dispatcher-servlet
контекст в web.xml, и оно загружает applicationContext
.
. Я определил messageSource
в dispatcher-servlet
и вводил его вКонтроллеры в порядке.
У меня также есть службы, определенные в applicationContext
, и я могу внедрить их в свои контроллеры (определенные в контексте dispatcher-servlet
).
Но когда я переместил свое определение для messageSource
до applicationContext
, чтобы некоторые службы могли разрешать сообщения; контекст dispatcher-servlet
показывает, что он не находит компонент messageSource
и использует значение по умолчанию, поэтому контроллеры вводят неверный компонент.
Любая идея, почему определение messageSource в applicationContext
не было бы видимым для контекста dispatcher-servlet
?
Я вижу, что мой bean-компонент messageSource загружен в секцию
applicationContext
журналов:
2058 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'messageSource'
2058 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating instance of bean 'messageSource'
...
2082 [main] DEBUG org.springframework.web.context.support.XmlWebApplicationContext - Using MessageSource [mycommons.spring.ResourceBundleMessageSourceWithDefaultResolution: basenames=[messages]]
Я вижу этот журнал при загрузке dispatcher-servlet
:
3858 [main] DEBUG org.springframework.web.context.support.XmlWebApplicationContext - Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@55611ed3]