Bonjour,
Pour créer un de mes projets j'ai adopté la même architecture que celle du tutoriel de Alexis Hassler. Donc avec les 3 paquets model, service et web, à la seule différence que dans le paquet service, j'ai bien sur ajouté d'autres fonctions lesquelles sont en liaison avec la base de données, comme par exemple pour ma classe Client :Le problème est que parfois, dans les fonctions de mes Beans managés je suis amené à faire appel à des services métiers comme c'est le cas dans cet exemple pour mon Bean "DemandeBean".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public interface ClientService { List<Client> findAll(); Client findById(Long id); Client findByNumero(String numero); void save(Client client); void delete(Client client); BigDecimal getClientSequence(); List<Client> findMultiCriteria(String nom, String prenom, String cin); }
Je me demandais si c’était vraiment une façon propre de faire la chose ? Si ajouter une autre couche aurait été une bonne idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public void ajoutDemande() { // -------- Récupération du client et produit relatifs à la demande Client client = clientService.findByNumero(this.client.getNumero()); Produit produit = produitService.findByLibelle(this.produit .getLibelle()); // --------- Récupération du l'utilisateur gérant la demande @SuppressWarnings("static-access") AuthentificationBean authentificationBean = (AuthentificationBean) JsfUtil .getInstance().getHttpSession() .getAttribute("authentificationBean"); String login = authentificationBean.getLogin(); String password = authentificationBean.getPassword(); Utilisateur utilisateur = utilisateurService.findByLoginAndPassword( login, password); // ------- Insertion de la demande if (client != null && produit != null && utilisateur != null) { demande.setClient(client); demande.setUtilisateur(utilisateur); demande.setProduit(produit); demandeService.save(demande); } }
Merci d'avance pour votre aide.
Partager