Introduction à STRUTS2 par l'exemple


précédentsommairesuivant

XX. Etude de cas - version 2

Nous présentons maintenant la version finale de notre application :

Image non disponible

Le nouveau projet Netbeans [pam-02] est obtenue par recopie du projet [pam-01] :

Image non disponible
  • en [1], on copie le nouveau projet
  • en [2], on nomme le nouveau projet [pam-02] et on précise son dossier
  • en [3], le nouveau projet [pam-02]

Pour " brancher " la vraie couche [metier] sur la couche web que nous avons construite, il faut faire trois choses :

  • supprimer la couche [metier] simulée que nous avions créée
  • configurer Spring pour qu'il instancie la vraie couche [metier] qui se trouve dans l'archive [pam-spring-metier-dao-jpa-hibernate.jar].
  • ajouter au projet toutes les archives nécessaires (Spring, Hibernate, Jpa, pilote Jdbc de MySQL).

Le fichier de configuration de Spring [WEB-INF/applicationContext.xml] devient le suivant :

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
  
  <!-- couches applicatives -->
 
 <!-- web -->
  <bean id="config" class="web.Config" init-method="init">
    <property name="metier" ref="metier"/>
  </bean>
  <!-- métier -->
  <bean id="metier" class="metier.Metier">
    <property name="employeDao" ref="employeDao"/>
    <property name="cotisationDao" ref="cotisationDao"/>  
  </bean>
  <!--  dao -->
  <bean id="employeDao" class="dao.EmployeDao" />
  <bean id="indemniteDao" class="dao.IndemniteDao" />
  <bean id="cotisationDao" class="dao.CotisationDao" />
  
  <!-- configuration JPA -->
  <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
      </bean>
    </property>
    <property name="loadTimeWeaver">
      <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
    </property>
  </bean>
  
  <!-- la source de donnéees DBCP -->
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/dbpam_hibernate" />
    <property name="username" value="root" />
    <property name="password" value="" />
  </bean>
  
  <!-- le gestionnaire de transactions -->
  <tx:annotation-driven transaction-manager="txManager" />
  <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
  </bean>
  
  <!-- traduction des exceptions -->
  <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
  
  <!-- persistence -->
  <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
  
</beans>

Les lignes 36-41 configurent l'accès à la base de données.

L'ajout des nouvelles bibliothèques (Spring, Hibernate, Jpa, pilote Jdbc de MySQL) se fait à partir du dossier [lib] [2]. On prend l'intégralité du dossier. Il y a plusieurs dizaines de fichiers .jar à ajouter [1] :

Image non disponible

Il a été assez difficile de constituer cette bibliothèque car ces frameworks utilisent parfois les mêmes archives. Il faut alors supprimer les doublons. Ces fichiers ont été rassemblés dans le dossier [lib] [2] dans l'archive des exemples de ce document afin que le lecteur n'ait pas à reconstituer lui-même cette bibliothèque.

C'est tout. La nouvelle application [pam-02] va désormais travailler avec le SGBD. Voici une copie d'écran d'un calcul de salaire :

Image non disponible

Cette fois-ci, le salaire calculé est le vrai salaire et non le salaire fictif de la version 1. Le lecteur est invité à tester la nouvelle application.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2012 Serge Tahe. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.