You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While updating SHDP to 4.1.RC2 I noticed some changed behaviour in autowiring. Short story is that I autowired list of beans in @Configuration class and had one default bean("defaultGridProjectionFactory) in a same class. This was done to allow user to replace/add these GridProjectionFactory beans. This worked up to 4.1.RC1/4.0.5 and broke with 4.1.RC2. Below is a diff showing how I fixed it in YarnAppmasterAutoConfiguration.
I was a bit amazed that having bean defined in a @Configuration class which would be autowired in that same @Configuration actually worked. Anyway, it's all good from our side but just wanted to give heads up if this change wasn't intentional in core. You can zap this jira if it works as planned.
Returning to this one, there has been a bit of finetuning in the area, in particular with respect to configuration self-references. I'll double-check what happened to this specific case.
This is a consequence of #16634, and in that sense intended: It was never meant to work that way and could cause quite some hassle in perfectly valid scenarios before, so we stopped supporting it altogether. We never supported autowired self-references for regular components either, so it's also consistent to not support it for factory method indirections.
FWIW, this self-exclusion only applies to non-static @Bean methods which have access to instance state. A simple solution for self-references is to declare those affected @Bean methods as static, or ideally to move them to a different configuration class.
Janne Valkealahti opened SPR-12127 and commented
While updating SHDP to 4.1.RC2 I noticed some changed behaviour in autowiring. Short story is that I autowired list of beans in
@Configuration
class and had one default bean("defaultGridProjectionFactory) in a same class. This was done to allow user to replace/add these GridProjectionFactory beans. This worked up to 4.1.RC1/4.0.5 and broke with 4.1.RC2. Below is a diff showing how I fixed it in YarnAppmasterAutoConfiguration.spring-attic/spring-hadoop@427aaeb#diff-2
I was a bit amazed that having bean defined in a
@Configuration
class which would be autowired in that same@Configuration
actually worked. Anyway, it's all good from our side but just wanted to give heads up if this change wasn't intentional in core. You can zap this jira if it works as planned.Affects: 4.1 RC2
Issue Links:
@Bean
methods too early in case of a circular reference@Autowired
List into Configuration that defines@Bean
ToAutoWire failsThe text was updated successfully, but these errors were encountered: