2011-09-20 64 views
3

我创建bean实例与如何以编程方式创建事务代理?

Type instance = new Type(); 

和使用

ctx.getAutowireCapableBeanFactory().autowireBean(instance); 

运行方法由ThreadPoolTaskExecuter执行,并且被标注与 @Transactional注释其在这种情况下没有效果的豆自动装配它。由于延迟加载问题发生。我需要在这里进行交易。

如何创建事务代理并包装我的实例?

有没有办法手动使用事务管理器?

+0

不能定义类型为原型的bean,然后从上下文看它?这将是最简单的方法来实现这一点。 – gkamal

回答

3

你应该得到正确的代理,如果从上下文你apply BeanPostProcessors

instance = ctx.getAutowireCapableBeanFactory().applyBeanPostProcessorsAfterInitialization(instance); 
3

您当然可以手动创建PlatformTransactionManager子类,并使用它的方法来创建和提交或回滚事务。

如果你想代理一个对象,你可能想要的类是org.springframework.transaction.interceptor.TransactionProxyFactoryBean。设置一个实例,并致电getObject()以获得您的代理类。

相关问题