在动态注册的Bean上的Spring Boot @Transactional支持

问题描述

为了提高我的服务的可配置性,我实现了一种逻辑,以获取要在运行时注册的,在我的配置中定义的bean,例如:

READ_BIT

在应用程序启动时,引导程序组件读取配置并根据其在配置中的定义实例化Bean:

receivers:
  myResource:
    sourceExchange: MyExchange
    entity: "com.company.domain.MyEntity"
    writer: "com.company.writer.MyEntityDBWriter"

这很好用,并允许可配置的Bean注册,而不会丢失自动配置/自动装配支持。 由于这些bean中采用的逻辑是DB-Writing-Logic,因此我想通过使用 @Component @Slf4j public class ReceiverBootstrapper { private ReceiversConfigurationModel configuration; private ConfigurableApplicationContext context; private Environment environment; public ReceiverBootstrapper(ReceiversConfigurationModel receiversConfigurationModel,ConfigurableApplicationContext context,Environment environment) { this.configuration = receiversConfigurationModel; this.context = context; this.environment = environment; } @postconstruct public void bootstrapReceivers() throws ClassNotFoundException,illegalaccessexception,InstantiationException { Map<String,ReceiverConfigurationModel> receiverMap = this.configuration.getReceivers(); for (String receiverName : receiverMap.keySet()) { ReceiverConfigurationModel receiverConfigurationModel = this.configuration.getReceivers().get(receiverName); Class writerClass = Class.forName(receiverConfigurationModel.getWriter()); AbstractDocumentWriter writer = (AbstractDocumentWriter) writerClass.newInstance(); context.getbeanfactory().registerSingleton(receiverName + "Writer",writer); context.getbeanfactory().autowireBean(writer); writer.postconstruct(); ... } } 进行自动事务管理来扩展此概念,但是我想我将不得不告诉某些Manager遵守实例化和注册的手册上的这些注释。豆。

您对我有一个提示,关于手动实例化我必须告诉什么组件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...