Juergen Hoeller opened SPR-15069 and commented
Following up on #19633 which turned out to be a lack of bean dependency tracking for the TaskScheduler lookup in SchedulerAnnotationBeanPostProcessor, it turns out that we're not tracking bean dependencies for calls to other @Bean methods within a @Configuration class at all. Since such calls are symbolic bean references, they should have a dependent-bean relationship tracked like any other form of injection does already, allowing to shut them down in proper order. This is also nicely in line with the changes behind #12206 which introduced the resolveNamedBean method in 4.3.3, as well as with the deterministic @Bean registration goal in #19074 (also for 4.3.6).
Issue Links:
Juergen Hoeller opened SPR-15069 and commented
Following up on #19633 which turned out to be a lack of bean dependency tracking for the
TaskSchedulerlookup inSchedulerAnnotationBeanPostProcessor, it turns out that we're not tracking bean dependencies for calls to other@Beanmethods within a@Configurationclass at all. Since such calls are symbolic bean references, they should have a dependent-bean relationship tracked like any other form of injection does already, allowing to shut them down in proper order. This is also nicely in line with the changes behind #12206 which introduced theresolveNamedBeanmethod in 4.3.3, as well as with the deterministic@Beanregistration goal in #19074 (also for 4.3.6).Issue Links:
@Beanregistration order within Class-reflected configuration classes