Créer Hibernate-Session, conformément à la Demande

Je viens de commencer une simple Java projettest qui gère certaines entités de l'utilisation d'Hibernate et fournit une interface REST de manipuler ces objets et fournissent davantage d'une logique d'entreprise. Le RESTE de l'interface est créée à l'aide de RESTEasy et de la Jetée.

Tout fonctionne bien jusqu'à présent, mais j'ai le sentiment que je suis en train d'écrire trop de code réutilisable. Comme je n'ai pas beaucoup d'expérience dans ces Java cadres je me demandais simplement si quelqu'un pouvait me donner un indice sur la façon d'améliorer la situation.

  1. Création de Sessions Hibernate par Demande

Bien, que j'ai compris, je dois créer une session Hibernate conformément à la demande et à la fin je suis obligé de le fermer. Donc, actuellement tous mes méthodes de service ressembler à ceci:

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

Est-il un moyen de supprimer ces deux lignes pour en quelque sorte faire cela automatiquement?
Actuellement mon service est enregistré en tant que RestEASY singleton. Le changement d'un RESTeasy ressource et de la création de la session dans le constructeur de résoudre le problème? Je pense que ça va résoudre le problème de la création de la session. Mais d'où pour le fermer?

En C++, cela peut facilement être fait de la création d'un objet compris dans l'étendue qui ferme la session à la fin. Mais en Java?

  1. Chaque fois qu'une telle RESTE la demande est faite, je dois vérifier la validité d'une session de (l'utilisateur dispose de la connexion précédemment). Est un ServletFilter la bonne façon de le faire?

Générale: Existe-t-il d'autres modèles ou cadres que je devrait envisager d'utiliser? Je veux dire, je veux le garder aussi simple que possible et surtout que je n'ai pas beaucoup d'expérience, je ne veux pas finir à l'aide de Printemps ou tout ce poids lourd de cadre. Semble que je suis habitué à la simplicité de Python et Django, mais pour ce petit projet, je dois utiliser Java.

Merci beaucoup!

OriginalL'auteur duselbaer | 2012-04-24