1
無法注入的基類直接無法注入基類@Inject註解
抽象基類
@Component
public abstract class A{
}
Here are my derived classes
@Named("abc")
public class B extends A{
}
@Named("cde")
public class C extends A{
}
我試圖調用一個在我的資源類,但得到以下錯誤。
org.springframework.beans.factory.UnsatisfiedDependencyException:應用程序的啓動過程中
@Inject private A a @Component public class Resource implements ServiceImpl{ @Inject public Resource(final Client client, final A a) { Assert.notNull(client); Assert.notNull(a); this.client = client; this.a= a; } @Override public Response method1(final Request request) { Response response = null; try { response = (PaymentResponse) this.a.process(request); } catch (final Exception ex) { ex.printstackTrace(); } return response; } } @Override public Response method2(final Request request) { Response response = null; try { response = this.a.process(request); } catch (final Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return response; } }
錯誤錯誤創建名稱爲豆 '資源' 文件 類型的沒有合格的bean定義的 'A'被定義爲:期望單個匹配bean但發現2:b,c
是否有替代方法。因爲我試圖將相同的基類擴展到30個不同的類。所以要避免同樣的注射30次? 。還有一種方法可以在方法級別使用限定符? – dev21
如果它不一定是組件,您可以創建工廠組件並將其注入其他組件。工廠可以創建你的基類中預期的對象。我不確定你想要達到的目標,但是創建30個課程可能是不好的設計的標誌,你可能想重新思考你的解決方案。如果我幫忙,請接受我的回答。 –