我想在@Bean
文件中提供可选的@Configuration
,例如:
@Bean
public Type method(Type dependency) {
// TODO
}
当找不到依赖关系时,不应该调用该方法。
怎么做?
答案 0 :(得分:3)
如果在SpringBoot
ConditionalOnClass
since 4.0
和Conditional,则需要使用See If using Spring
SpringBoot
的示例: -
@Bean
@ConditionalOnClass(value=com.mypack.Type.class)
public Type method() {
......
return ...
}
现在method()
仅在com.mypack.Type.class
位于classpath
时才会被调用。
答案 1 :(得分:0)
在调用任何需要依赖项的方法之前,必须先检查依赖项是否已初始化。
@Autowired(required = false)
Type dependency;
public Type methodWhichRequiresTheBean() {
...
}
public Type someOtherMethod() {
if(dependency != null) { //Check if dependency initialized
methodWhichRequiresTheBean();
}
}