我正在构建一个带有自定义“连接”类的 JCA 适配器。在我见过的所有示例中,您应该在连接类中放置一个“void close()”。然后在使用您的自定义连接类时,您必须在 finally 块中调用 close() 。
我真的不相信开发人员记得在 finally 块中关闭。此外,我不必在 EntityManager 上调用“close()”。容器自动管理 EntityManager 的打开和关闭。
有没有办法让容器自动关闭与我的 JCA 适配器的任何连接?我尝试过覆盖 finalize(),但在 JVM 决定清理我的连接之前可能需要很长时间。
或者,如果有人知道如何为 findbugs 编写一个插件来标识在 finally 块中使用自定义连接类而不使用 close() 的任何地方......我可能会同意。