以编程方式注册@Component注释类

问题描述 投票:0回答:2

我是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类它正在工作,但它给我一个错误,如

不是托管类型类

有没有其他方法可以做到这一点,请帮助我。

java spring spring-boot spring-data-jpa spring-bean
2个回答
1
投票

您可以在工厂方法中使用@Bean批注来初始化bean。所以,假设您有一个MyBean组件并想要初始化它...您可以在@Configuration类中执行此操作:

@Bean
public MyBean myBean() {
   MyBean myBean = ... // initialize your bean here

   return myBean;
}

0
投票

怎么一个

@Bean
public ContextDataConfiguration contextDataConfiguration(){
    return new ContextDataConfiguration();
}

这会将ContextDataConfiguration的一个实例注册为bean。

© www.soinside.com 2019 - 2024. All rights reserved.