ActiveJdbc open/close 数据库架构

ActiveJdbc open/close Db architecture

我正在使用 ActiveJdbc 构建一个网络应用程序。一切都很完美。 我只是 "problem" 我的架构。

使用 Spring 4,我有一个过滤器,我可以在其中打开连接,做我必须做的然后关闭它。

        try {

            Base.open(ConnectionPool.getInstance().getConnection(dbName));
            Base.openTransaction();
            chain.doFilter(req, resp);
            Base.commitTransaction();
        } catch (IOException | ServletException e) {
            Base.rollbackTransaction();
            Logger.logMsg(Logger.ERROR, e.getMessage());
            throw e;
        } finally {
            Base.close();
        }

问题是我有: - 一些不需要连接的控制器。 - 需要连接以实例化单例的调度程序 - 根据某些参数可能需要连接的其他一些 类。

结果是我在好几个地方都有上面的这段代码。有没有更好的方法只在一个地方进行连接?

JavaLite 在 opening/closing 不同控制器的连接方面具有相当大的灵活性:http://javalite.io/database_configuration#bind-connections-to-controllers

但是,由于您没有使用 ActiveWeb,因此您必须编写自己的逻辑。基本上,在您的 ServletFilter 中,您需要检查 URI,然后决定是打开连接还是跳过连接。