以编程方式注册@Component注释类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式注册@Component注释类相关的知识,希望对你有一定的参考价值。
我是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类它正在工作,但它给我一个错误,如
不是托管类型类
有没有其他方法可以做到这一点,请帮助我。
答案
您可以在工厂方法中使用@Bean批注来初始化bean。所以,假设您有一个MyBean
组件并想要初始化它...您可以在@Configuration类中执行此操作:
@Bean
public MyBean myBean() {
MyBean myBean = ... // initialize your bean here
return myBean;
}
另一答案
怎么一个
@Bean
public ContextDataConfiguration contextDataConfiguration(){
return new ContextDataConfiguration();
}
这会将ContextDataConfiguration
的一个实例注册为bean。
以上是关于以编程方式注册@Component注释类的主要内容,如果未能解决你的问题,请参考以下文章