Создать Hibernate -Session per Request

Я только что начал простой тестовый проект Java, который управляет некоторыми объектами с помощью Hibernate и предоставляет интерфейс REST для управления этими объектами и предоставления некоторой дополнительной бизнес-логики. Интерфейс REST создается с помощью RESTEasy и Jetty.

Пока все работает нормально, но мне кажется, что я пишу слишком много шаблонного кода. Поскольку у меня нет большого опыта работы с этими средами Java, мне просто интересно, может ли кто-нибудь дать мне подсказку о том, как улучшить ситуацию.

  1. Создание сеансов гибернации по запросу

Ну, насколько я понял, я должен создать сеанс гибернации по запросу и в конце закрыть его. Итак, в настоящее время все мои методы обслуживания выглядят так:

Session session = HibernateUtil.getInstance().getSessionFactory().openSession();
...
...
...
session.close();

Есть ли способ удалить эти две строки, чтобы как-то сделать это автоматически? В настоящее время мой сервис зарегистрирован как синглтон RestEASY.Решит ли проблему переход на ресурс RESTeasy и создание сеанса в конструкторе? Думаю, это решит проблему создания сессии. Но где его закрыть?

В C++ это можно легко сделать, создав объект с ограниченной областью действия, который закрывает сеанс в конце. А на Яве?

  1. Всякий раз, когда делается такой запрос REST, я должен проверить действительный сеанс (пользователь должен войти в систему ранее ). Является ли ServletFilter правильным способом сделать это?

Общее :Существуют ли какие-либо другие шаблоны или платформы, которые мне следует использовать? Я имею в виду, что я хочу, чтобы это было как можно проще, и особенно, поскольку у меня нет такого большого опыта, я не хочу в конечном итоге использовать Spring или любую другую тяжеловесную структуру. Кажется, я привык к простоте Python и Django, но для этого небольшого проекта я должен использовать Java.

Спасибо!

8
задан Kai 24 April 2012 в 09:11
поделиться