我剛剛使用Spring 3.1設置了一個Web應用程序,並試圖通過使用java配置來實現此目的。 我有兩個配置類「AppConfig」(一般的bean定義)和「WebConfig」(Spring MVC配置)。我如何引用已在WebConfig類的AppConfig中聲明的bean?Spring 3.1:如何注入在不同配置類中創建的bean
下面,AppConfig配置類中的驗證器應該使用來自WebConfig的messageSource。
的AppConfig:
@Configuration
@ComponentScan(basePackages = { "com.example" })
public class AppConfig {
@Bean
public Validator validator() {
final LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.setValidationMessageSource(messageSource());
return validator;
}
}
WebConfig:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.example.common.web", "com.example.web" })
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
return messageSource;
}
}
當我想引用來自同一配置類豆,我只需要調用它的設置方法,但我顯然無法做到這一點當bean在另一個類中聲明時。
您的建議將不勝感激!
第一種形式不允許你爲測試覆蓋bean。 –
謝謝!我接受了這個答案,因爲它提供了更多信息。 –