![](/img/trans.png)
[英]Dependency Bean injection for generic instance variable in spring
[英]Spring Config Bean Injection with generic
我有一個通用接口-
Interface A<T1,T2>{
public T1 getSome(T2 input);
}
我有一個包裝類-
Class B implements A<C,D>{
@Override
public D getSome(C input){
// Do something
return D;
}}
現在我有一個 spring 配置類
@Configuration
public Class BConfig{
@Bean
public A b(){
return new b();
}}
現在我有一個 AppConfig 類
@Configuration
Class AppConfig(){
@Inject
private A b
public App app(){
return new App(b);
}}
我的 App 類看起來像-
public Class App{
A b;
public App(A b){
this.b=b;}
public void doSome(){
C c=new C();
D d=b.getSome(c);
}
}
現在在我的 App 類中,我是否需要使用 -
A<C,D> b;
或者
A b;
由於 bean 注入將注入 A 的實現,即 Spring 配置中的 B。 我不想指定泛型類型,因為這會稍微破壞使用泛型的目的。
Spring 按類型、限定符和名稱自動裝配 bean。
這取決於您想如何使用它們。 如果您在沒有泛型的情況下定義它們,您將使用 java.lang.object 這意味着當您需要在某些類中使用這些邏輯時,您將轉換為某種類型
有了泛型,你就不會有這樣的問題。
這是一個例子:
@Configuration
public class BConfig{
@Bean
public A<C,D> b(){
return new B();
}
}
@Component
public class E {
@Autowired
private A<C,D> b;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.