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?

questionAnswers(2)

yourAnswerToTheQuestion