2 回答

TA贡献1884条经验 获得超4个赞
实施了解决方法。
bean 在core模块中定义:
@Configuration
public class CoreModuleConfiguration {
// ...
@Bean(name="coreLocalValidatorFactoryBean")
public LocalValidatorFactoryBean getValidator() {
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean.setValidationMessageSource(messageSource());
return localValidatorFactoryBean;
}
}
(完整版在这里)
web然后在模块中提到了相同的bean :
@Configuration
public class WebModuleConfiguration implements WebMvcConfigurer {
// ...
private final LocalValidatorFactoryBean localValidatorFactoryBean;
@Autowired
public WebModuleConfiguration(
// ...
@Qualifier("coreLocalValidatorFactoryBean") LocalValidatorFactoryBean localValidatorFactoryBean
) {
// ...
this.localValidatorFactoryBean = localValidatorFactoryBean;
}
// ...
@Bean(name = "webLocalValidatorFactoryBean")
public LocalValidatorFactoryBean getValidator() {
return this.localValidatorFactoryBean;
}
}
好吧,它有点难看,但它确实有效。

TA贡献1873条经验 获得超9个赞
在javadocs to @SpringBootConfiguration
class中,据说
应用程序应该只包括一个
@SpringBootConfiguration
所以首先我会检查这个核心配置是否已经加载。@Configuration
使用@Import
或@ComponentScan
在 web 配置类中标记核心配置类可能是有意义的。
添加回答
举报