У меня есть рабочий Spring MVC Project и вы хотите перенести конфигурацию контекста приложения из xml в Java-Config. Все работает отлично, за исключением messageSource Bean.Spring messageSource работает только как xml (не как Spring-Java-Config)
После работает отлично:
Этот класс конфигурации импортируется другим классом конфигурации:
package gmm;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource({"classpath:applicationContext.xml"})
public class I18nConfiguration {
}
Реферировано applicationContext.xml файл:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
">
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
</beans>
После делает не работает:
Перемещенной фасоли в Java конфигурацию:
package gmm;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
@Configuration
public class I18nConfiguration {
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
source.setBasename("messages");
return source;
}
}
Когда я использую этот Java конфигурацию, я получаю только обычный ???key.for.message???
материал. Отладочный вывод не говорит мне что-то необычное.
Я не вижу здесь, что здесь не так. Есть ли очевидная ошибка в моем коде? Скажите, пожалуйста, даже если вы сейчас не решили, потому что я чувствую себя как-то немым сейчас! Это должно быть просто супер, не так ли?
Edit: Файлы сообщений в SRC/основные/ресурсы и названы как messages_en.properties.
Edit2: Полный исходный код проекта можно найти здесь: https://github.com/Katharsas/GMM/tree/PerfRevamp
Вы забыли '@ Bean'. – axtavt
Извините, я удалил эту строку по какой-то причине, когда я скопировал код на вопрос. Прочитал его. Я также пробовал явное имя бина, что не помогло. – Katharsas