以编程方式注册@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注释类的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式取消注释代码

以编程方式注册过滤器时的 Servlet 过滤器顺序

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

以编程方式替换片段

Vue组件之全局组件与局部组件

Vue组件之全局组件与局部组件