注入使用 Spring 扩展抽象类的类列表

use*_*515 5 spring list inject

嘿,

我有下一个代码:

public abstract class MyClass{
   protected abstract void method1();
}
Run Code Online (Sandbox Code Playgroud)

扩展第一个类:

 @Component
 public class MyClass1 extends MyClass{
    .....
 }

@Component
public class MyClass2 extends MyClass{
  .....
}
Run Code Online (Sandbox Code Playgroud)

我尝试注入扩展抽象类的类列表的类

 @Component
 public class SpringClass{

     @Autowired **//It doesnt work, nothing is inyected!**
     List<MyClass> classes

 }
Run Code Online (Sandbox Code Playgroud)

我的问题是它不起作用,它不会在属性类中注入扩展 MyClass 的类列表。为什么?

谢谢

Rag*_*dra 0

您可以删除实例变量的@Autowired注释并将其添加到setter方法中。完成此操作后,您的春季课程将是

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class SpringClass {

    List<MyClass> classes;

    @Autowired
    public void setClasses(List<MyClass> classes) {
        this.classes = classes;
    }


}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。