我是 Spring 框架的新手,我的问题是通过 Spring 应用程序上下文注册 Spring 组件,我尝试了很多不同的方法,但还没有成功。
@Configuration
@ComponentScan("com.example.app")
@EnableAutoConfiguration
public class ContextDataConfiguration
{
...
}
已注册
@PostConstruct
public void initilize()
{
AutowireCapableBeanFactory beanFactory = context.getAutowireCapableBeanFactory();
beanFactory.initializeBean( new ContextDataConfiguration(), "contextDataConfiguration" );
}
但是 ContextDataConfiguration 类中指定的其他 bean 未使用此方法进行初始化。
如果我在组件扫描中指定 ContextDataConfiguration 类,它正在工作,但它给我一个错误,如
not a managed type class
有没有其他方法可以做到这一点?
最佳答案
您可以在工厂方法中使用@Bean注释来初始化您的bean。因此,假设您有一个 MyBean 组件并想要初始化它...您可以在 @Configuration 类中执行此操作:
@Bean
public MyBean myBean() {
MyBean myBean = ... // initialize your bean here
return myBean;
}
关于java - 以编程方式注册 @Component 注解的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130324/