spring bean 初始化顺序的问题,如果 LogRecordConfiguration 比 LogRecordProxyAutoConfiguration 先初始化,@ConditionalOnMissingBean 就可以生效,反之 LogRecordProxyAutoConfiguration 先初始化的话,执行到 @
ConditionalOnMissingBean(IOperatorGetService.class)的时候就会返回 true ,导致 DefaultOperatorGetServiceImpl 被注入,后面再到 LogRecordConfiguration 的时候就冲突了
官网文档
https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnMissingBean.htmlThe condition can only match the bean definitions that have been processed by the application context so far and, as such, it is strongly recommended to use this condition on auto-configuration classes only. If a candidate bean may be created by another auto-configuration, make sure that the one using this condition runs after.