我刚刚开始了一个简单的 Java 测试项目,它使用 Hibernate 管理一些实体,并提供一个 REST 接口来操作这些对象并提供一些额外的业务逻辑。REST 接口是使用 RESTEasy 和 Jetty 创建的。
到目前为止一切正常,但我觉得我实际上编写了太多样板代码。由于我在这些 Java 框架方面没有太多经验,我只是想知道是否有人可以给我一个关于如何改善这种情况的提示。
- 为每个请求创建 Hibernate 会话
好吧,据我所知,我必须为每个请求创建一个 Hibernate 会话,最后我必须关闭它。所以目前我所有的服务方法都是这样的:
Session session = HibernateUtil.getInstance().getSessionFactory().openSession();
...
...
...
session.close();
有没有办法删除这两行以便以某种方式自动执行此操作?目前我的服务已注册为 RestEASY 单例。更改为 RESTeasy 资源并在构造函数中创建会话会解决问题吗?我认为它将解决创建会话的问题。但是在哪里关闭呢?
在 C++ 中,这可以很容易地创建一个范围对象,该对象在最后关闭会话。但是在Java中?
- 每当发出这样的 REST 请求时,我都必须检查有效会话(用户必须事先登录)。ServletFilter 是正确的方法吗?
一般:我应该考虑使用任何其他模式或框架吗?我的意思是我想让它尽可能简单,特别是因为我没有那么多经验,我不想最终使用 Spring 或任何重量级框架。似乎我已经习惯了 Python 和 Django 的简单性,但是对于这个小项目,我必须使用 Java。
到目前为止,谢谢!