我用
创建了一个bean实例Type instance = new Type();
并使用
自动启动它ctx.getAutowireCapableBeanFactory().autowireBean(instance);
beans run方法由ThreadPoolTaskExecuter
执行,并使用注释进行注释
@Transactional
注释,在这种情况下无效。由于发生延迟加载问题。我需要一个交易。
如何创建事务代理并包装我的实例?
除了手动使用事务管理器之外还有其他方法吗?
答案 0 :(得分:4)
如果你从上下文apply BeanPostProcessors获得了正确的代理:
instance = ctx.getAutowireCapableBeanFactory().applyBeanPostProcessorsAfterInitialization(instance);
答案 1 :(得分:3)
您当然可以手动创建PlatformTransactionManager
子类并使用其方法来创建和提交或回滚事务。
如果要代理对象,则可能需要的类为org.springframework.transaction.interceptor.TransactionProxyFactoryBean
。设置该实例并调用getObject()
以获取您的代理类。