我正在使用ActiveJdbc构建一个webapp。一切都很完美。 我的架构只是一个“问题”。
使用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();
}
问题是我有: - 一些不需要连接的控制器。 - 需要连接以实现单例的调度程序 - 根据某些参数可能需要连接的其他一些类。
结果是我在几个地方都有上面的代码。有没有更好的方法只在一个地方进行连接?
答案 0 :(得分:1)
JavaLite在打开/关闭不同控制器的连接方面具有相当大的灵活性:http://javalite.io/database_configuration#bind-connections-to-controllers
但是,由于您没有使用ActiveWeb,因此您必须编写自己的逻辑。基本上,在ServletFilter中,您需要检查URI,然后决定打开连接或跳过。