【发布时间】:2012-04-24 08:51:28
【问题描述】:
我刚刚开始了一个简单的 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。
到目前为止,谢谢!
【问题讨论】:
标签: java hibernate jetty design-patterns resteasy