我正在寻找一个干净的解决方案来让事务启动的监听器。这意味着我希望侦听器在Spring上下文中成为一个bean(组件),在开始新事务的时候,事务将从TransactionPlatformManager或Hibernate Session或类似的事件接收事务。事务开始时的监听器
东西一起:
@Component
class TransactionListener implements ?? {
@Autowired
private Something x;
public void onTransactionBegin(...) {
x.doSomething()
}
}
要具体,我减轻系统范围的问题,我需要设置一个线程本地事务开始时,这样我就可以当地的继续访问该线程处于休眠的处理实体来检索信息。
我调查了消息来源,发现这样的听众无法实现。我发现的唯一解决方案是继承HibernateTransactionManager和它的doBegin()方法,我不觉得特别好。
最简单的可能是为“PlatformTransactionManager”创建一个包装,并在3个方法调用上触发这些事件。但为什么你需要注册?你在做什么?你提到解决问题,但这似乎有点奇怪。 –
我面临的问题是无关紧要的,它是由我们的大型多模块架构引起的。如果我有选择作出有关架构的决定,我会以不同的方式做。但这在传统架构中是不可能的,没有沉浸式重写,这就是为什么我需要这个。 – redhead