ich eine Klasse Foo
in Paket com.example.dao
-Spring - Injizieren Instanz der Klasse mit nur statischen Mitgliedern
@Component
public class Foo {
public static final String nameAbc = "Abc";
public static final String nameDef = "Def";
public static List<String> getNames() {
return ImmutableList.of(nameAbc, nameDef);
}
// I created this for testing purpose.
// I was testing if maybe Spring needs an instance of class to inject.
public static Foo instance = new Foo();
}
In einer Configuration
BeanConfig Klasse mag ich ein List<Foo>
injizieren und einige Betreiber darauf ausführen -
@Configuration
public class BeanConfig {
private List<Foo> foos;
@Autowired
public void setFoos(List<Foo> foos) {this.foos = foos;}
@Bean
public Bar bar() {
// using foos in some logic here for creating Bar bean
}
}
ich habe auch versucht @ComponentScan
auf BeanConfig
-Klasse -
@ComponentScan(basePackages = "com.example.dao")
aber Klasse Foo ist immer noch nicht injiziert, da ich eine leere Liste bekomme. Was genau ist der Fehler hier?
Update - Es kam eine andere Frage sein aus - einige Bohnen in com.example.dao
Paket, das @ComponentScan
verursacht hatte, nicht Standardkonstruktoren hatte, eine Ausnahme zu werfen, während ihre Instanzen zu schaffen. Durch das Aktualisieren der Konstruktoren wurde das Problem behoben.