簡體   English   中英

如何為 Java 中的枚舉自動裝配 Spring Bean

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM