Предположим, у меня есть этот @Configuration
класс:
@Configuration
public class SomeConfig{
@Bean
public MyBean myBean(){
return new MyBean();
}
@Bean
public Another anotherBean(){
return new AnotherBean();
}
}
У меня есть класс, который реализует BeanDefinitionRegistryPostProcessor
для добавления определенных BeanDefinition
. На нем я также хотел бы импортировать SomeConfig
, чтобы его beans добавлялся в контекст:
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
BeanDefinition someConfig= new RootBeanDefinition("x.y.z.SomeConfig");
registry.registerBeanDefinition("someConfig", someConfig);
}
Проблема в том, что компоненты SomeConfig
(myBean
, anotherBean
) не были добавлены в контекст. Однако есть bean-компонент someConfig:
@Autowired
MyBean myBean ---> FAILS
@Autowired
AnotherBean anotherBean ---> FAILS
@Autowired
SomeConfig someConfig ---> OK