Ho una domanda sull'ordine di cablaggio automatico e sulla logica @PostConstruct
in primavera. Per esempio seguente codice demo ho una classe principale molla di avvio:Ordine di autowiring di primavera e @PostConstruct
@SpringBootApplication
public class Demo1Application {
@Autowired
BeanB beanb;
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
e 2 @Service
Definizioni:
@Service
public class BeanB {
@Autowired
private BeanA beana ;
@PostConstruct
public void init(){
System.out.println("beanb is called");
}
public void printMe(){
System.out.println("print me is called in Bean B");
}
}
@Service
public class BeanA {
@Autowired
private BeanB b;
@PostConstruct
public void init(){
System.out.println("bean a is called");
b.printMe();
}
}
e ho il seguente output:
fagiolo una si chiama
stampa me è chiamato in Bean B
beanb si chiama
mia domanda è come autowiring avviene passo per passo come uno scenario di cui sopra?
E come viene chiamato il metodo printMe()
di beanb
senza chiamare prima il suo @PostConstruct
?
[Link] (https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/beans. html # beans-dependency-resolution) alla risoluzione delle dipendenze circolare. –