java - 以编程方式注册 @Component 注解的类

标签 java spring spring-boot spring-data-jpa spring-bean

我是 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/

相关文章:

java - Spring Boot Rest - 如何配置 404 - 找不到资源

java - 为什么 ArrayDeque 比 LinkedList 好

java - 为 JFileChooser 上的选定文件设置自己的文件图标

java - 如何在tomcat中部署的不同Web应用程序中访问公共(public)jar中加载的bean

java - Hibernate更新一对一创建新的子对象而不是更新现有的子对象

java - 如何根据映射 URL 从 RestController 获取实体

Java - 检查用户的串行代码格式是否有效的程序

java - 使用 Java 中的外部应用程序编辑文件并写回?

spring - 如何根据 Spring Boot 中的配置文件运行/关闭选择性测试

spring-boot - Spring Boot + Keycloak 使用私有(private)证书