У меня вопрос о порядке автоматической проводки и логике @PostConstruct
в Spring. Например, следующий демо-код у меня есть основной Spring класс загрузки:
@SpringBootApplication
public class Demo1Application {
@Autowired
BeanB beanb;
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
}
}
и 2 @Service
Определения:
@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();
}
}
и у меня есть следующий вывод:
bean a называется
print me вызывается в Bean B
beanb называется
Мой вопрос заключается в том, как аутоустановка происходит шаг за шагом, как сценарий выше?
И как метод printMe()
beanb
вызывается без вызова его @PostConstruct
первым?