我需要將@Bean SpringTemplateEngine
放在ApplicationConfig
中,以便我可以@Autowire它到一個生成電子郵件的@Component。 (見Thymeleaf-Spring4 unable to autowire TemplateEngine和Rich HTML email in Spring with Thymeleaf)。因此@Bean(name =「messageSource」)也需要在ApplicationConfig
之內。然而,我有一個WebMvcConfig
延伸WebMvcConfigurationSupport
和方法@Override Validator getValidator()
需要setValidationMessageSource
與messageSource()。然而,因爲我把它移到ApplicationConfig
我不知道如何從WebMvcConfig
得到它。我從kolorobot開始spring-mvc-quickstart-archetype。不是找到一個全新的配置原型,也許這裏的某個人可以指導我一個有用的方向。Spring bean messageSouce不能同時在ApplicationConfig和WebMvcConfig中
爲ApplicationConfig
@Configuration
@ComponentScan(basePackageClasses = Application.class, excludeFilters = @Filter ({Controller.class, Configuration.class}))
class ApplicationConfig {
*** Incomplete Example ***
@Bean(name = "messageSource")
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename(MESSAGE_SOURCE);
messageSource.setCacheSeconds(5);
return messageSource;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
Set<TemplateResolver> resolvers = new HashSet<TemplateResolver>();
resolvers.add(classLoaderTemplateResolver());
resolvers.add(mvcTemplateResolver());
templateEngine.setTemplateResolvers(resolvers);
templateEngine.setMessageSource(messageSource());
templateEngine.addDialect(new SpringSecurityDialect());
return templateEngine;
}
}
及相關代碼相關代碼爲WebMvcConfig
@Configuration
@ComponentScan(basePackageClasses = {Application.class}, includeFilters = @Filter (Controller.class), useDefaultFilters = false)
class WebMvcConfig extends WebMvcConfigurationSupport {
*** Incomplete Example ***
@Override
public Validator getValidator() {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.setValidationMessageSource(messageSource());
return validator;
}
}
這個問題似乎是,我不能移動getValidator()到ApplicationConfig(),因爲它必須覆蓋WebMvcConfigurationSupport方法。
爲什麼不在WebMvcConfig中使用@Autowired MessageSource? – ndrone 2014-08-28 23:57:40
我不確定我可以在配置部分自動裝配東西。我會反對它。 – 2014-08-29 15:22:25