Pedido de ligação automática da primavera e @PostConstruct
Tenho uma pergunta sobre a ordem de fiação automática e@PostConstruct
lógica na primavera. Por exemplo, após o código de demonstração, tenho uma classe principal do Spring Boot:
@SpringBootApplication
public class Demo1Application {
@Autowired
BeanB beanb;
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
e 2@Service
Definições:
@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 eu tenho a seguinte saída:
o feijão a é chamado
imprima-me é chamado no Bean B
beanb é chamado
Minha pergunta é como a fiação automática ocorre passo a passo, como no cenário acima?
E comoprintMe()
método debeanb
é chamado sem chamar seu@PostConstruct
primeiro?