Klasa startowa:
public static void main(String[] args) {
SpringApplication.run(SpringtestApplication.class, args);
@Autowired
ClassA classA;
@Autowired
ClassB classB;
classB.show();
}
Klasa A
@Component
public class ClassA {
public void show(){
System.out.println("ClassA");
}
}
Klasa B
@Component
public class ClassB {
public void show(){
System.out.println("ClassB");
}
public ClassB(ClassA a){
a.show();
}
}
Problem:
Error:(16, 17) java: annotation type not applicable to this kind of declaration
Co chce uzyskać: wg mnie powinien uzyskać w konsoli wynik:
ClassA
ClassB
ponieważ, pierw wstrzykujemy do konstruktora ClassB, gdzie jest uruchamiane a.show().
Pytania:
- czy mój to rozumowania jest ok ?
- gdzie leży problem i dlaczego ?
- czy kod z adnotacją @Autowired będzie działał dokładnie tak samo, jak:
// ClassA classA = new ClassA();
// ClassB classB = new ClassB(classA);
// classB.show();