我有一个生产 MyResourceManager 的 pojo 生产者。
@TraderResouceManager @RequestScoped public MyResourceManager(){ ... ... }
MyResourceManger 被注入到 SLSB
@inject @TraderDB private MyResourceManager rm;
处置器如下
公共无效关闭(@Disposes @TraderResouceManager MyResourceManager rm){ rm.close(); }
问题
close() 什么时候执行?
是在交易结束前还是交易结束后?
编辑:这个问题可能需要额外的解释。让我们以数据库连接为例。
我使用@RequestScoped 创建了一个@producer,使用pojo 为每个请求创建一个新连接。
我需要的是在请求结束时处理连接。此连接由其他 bean 共享(现在为 SLSB)。在给定的请求中,可能涉及在事务中运行的许多 bean。因此,只有在所有事务逻辑关闭后,我才需要关闭连接。
问题 当我使用容器管理事务时,我是否能够使用上述代码实现此行为?