Logo site Des Geeks et des lettres

L'application pour surveiller / sauvegarder vos smartphonesL'oeil inquisiteur de Bibispy

JPA 2.0 et Spring 3.2 : Configuration Java sans XML

Porter la configuration des différents frameworks dans des fichiers XML ne m’a jamais dérangé jusque là, pourtant de plus en plus nous voyons que ces fichiers de configuration sont remplacés par des annotations ou des classes Java.

Par curiosité mais surtout pour ne pas me laisser dépasser par les nouveautés, je m’y suis mis dans mon nouveau projet perso, la suite du billet va vous présenter la façon de configurer JPA avec Spring sans aucun fichier XML.

Java-persistence

Configuration Java

A partir de Spring 3.1 il est possible de se passer du fichier META-INF/persistence.xml qui sert à configurer l’unité de persistance JPA (<persistence-unit>), à présent la classe LocalContainerEntityManagerFactoryBean permet de s’en passer totalement et propose même une propriété « packagesToScan » qui permet de spécifier les packages à scanner afin d’y retrouver automatiquement nos beans @Entity.

Voici un exemple de ce fichier de configuration (Spring 3.2 et Hibernate 4.1.8 pour l’implémentation de JPA) :

Repository (ou DAO)

L’injection de cet « entityManager » dans vos classes Repository (ou DAO) se fait automatiquement grâce à la [email protected]({ « package.de.vos.beans.repository » }) de la classe PersistenceJpaConfiguration ci-dessus.

Ces classes n’ont plus besoin à présent d’utiliser les templates Spring comme JpaTemplate, elles ne font références qu’au package javax.persistence et sont donc plus facilement réutilisables :

Sources

Lien vers une archive de projet minime mais complet : projet maven ici

Il faut créer une base de données nommée « dgedl » et modifier le fichier src/main/resources/META-INF/dgedl/dgedl.properties afin de modifier les accés à votre base de données.

Trois flèches vers le bas

1- Logiciel de brouillage d’adresse IP :

Contourner la censure en surfant anonyme

2- L’article explicatif :

La différence entre un proxy et un VPN

3- Comment espionner un smartphone (app) :

L’application de référence

Commentez ici

  • felixiotg 18 janvier 2013, 2 02

    Bonjour Mimie.
    J’ai essayé de faire un projet vierge tout en créant une classe PersistenceJpaConfiguration.java .
    J’ai commencé a avoir des problemes avec les injections automatiques des beans (@Autowired), par exemple au niveau du Controller. Je sais pas comment injecter aussi @PersistenceContext
    protected EntityManager em;

    Juste savoir si vous pouvez me fournir un projet très simple avec une configuration comme decrite ci-dessus . Merci

    Réponds !

  • Mimie 18 janvier 2013, 12 12

    @felixiotg : je vais essayer de te faire ça ce soir

    Réponds !

  • Felixiotg 20 janvier 2013, 10 10

    Merci d’avance Mimie. J’attends avec impatience. Bon dimanche.

    Réponds !

  • Mimie 21 janvier 2013, 0 12

    Voilà j’ai rajouté une rubrique Sources au billet, il te faut faire un mvn eclipse:eclipse puis mvn jetty:run

    Réponds !

  • felixiotg 21 janvier 2013, 18 06

    Merci Mimie. Je vais l’essayer . Bien à vous.

    Réponds !

  • Greg 22 janvier 2013, 3 03

    Toujours fidèle au poste le Mimie 😀

    Réponds !

  • Mimie 22 janvier 2013, 18 06

    huhu ^^
    je ne sais pas si ça a aidé felixiotg mais je reste fidèle au poste 🙂

    Réponds !

  • felixiotg 23 janvier 2013, 22 10

    Merci de l’attention que tu portes à mon égard, Mimie. J’ai pas encore testé ton projet. Demain au plus vendredi, je t’enverrai un message Merci et bonne soirée 🙂

    Réponds !

  • Ahmed 4 mai 2013, 10 10

    Bonjour,

    de telles configurations sont faciles à comprendre pour des initiés à Spring version XML. mais pas pour un novice en Spring! Pouvez vous vous citer de la bonne documentation d’introduction à Spring qui permet ultérieurement une orientation vers de la config java?

    Réponds !

Article suivant:

Article précédent:

Recherche

A vos stylos !

  • Chris: “Bonjour, Quel est le nom de la table du plugin W3Total Cache car je ne la trouve…Déc 1, 09:22
  • Greg: “Liens de l'article mis à jour.Nov 27, 14:32
  • Greg: “Vraiment pénible ce problème. Pour ma part je l'ai résolu en créant un raccourci manuel dans mes favoris et en…Nov 20, 23:28
  • Jacqueline: “Je suis sur Safari.... même problème. Mon appli pour iPad ne fonctionne pas non plus.Nov 18, 08:44
  • Greg: “Ouais mais c'est vrai que ton article était bien senti. Ca le fait que tu le lises depuis Feedly :)…Nov 3, 21:00
  • Youness: “Bonjour, Merci pour cette article il ma aider enormement lors de la creation de mom projet Ma question…Nov 3, 20:29
Share This