[英]How to Autowire Spring Bean for Enum in Java
如何避免使用 spring 配置 @Bean 為枚舉創建新對象
下面枚舉E中的示例如何避免使用 spring 配置 Bean 創建新的 A()和新的 B() object。
public enum E {
FIRST(new A()), // How to avoid creating new objects using Spring beans
SECOND(new B());
private final I i;
E(I arg){
this.i = arg;
}
public static someMethod(){};
}
public interface I{
int method(){}
}
public class A implements I {
@Override
public int method(){}
}
public class B implements I {
@Override
public int method(){}
}
我通過以下方式實現它。
public enum E {
FIRST(SpringContext.getBean(A.class)), // How to avoid creating new objects using Spring beans
SECOND(SpringContext.getBean(B.class));
private final I i;
<T extends Object> BulkUploadType(T bean) {
this.i = (I) bean;
}
E(I arg){
this.i = arg;
}
public static someMethod(){};
}
getBean 方法將返回實現的 class 的 Bean。
public static <T extends Object> T getBean(Class<T> beanClass) {
return applicationContext.getBean(beanClass);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.