Bonjour,
J'ai décidé de migrer une application dans l'architecture JPA-EJB-JSF vers JPA-Spring-JSF.
Lors de cette migration vers spring j'ai activé CDI également.
après la migration de toutes les couches je suis au niveau de la couche des controllers.
En JEE j'ai annotés des méthodes avec @PostConstruct qui me permettent d'initialiser des variables,tester des configurations pour les appliqués.Ces méthodes s'exécutent avant avant les setters/getters.
exemple code java ee:
Après migration sur Spring j'ai lu que le @PostConstruct ne s'execute qu'après l'initialisation des Beans dans le context.Donc j'ai constaté que mes méthodes s'excutent au démarrage de mon application.Désormais ne s'éxecute pas lors de l'ouverture d'une page web utilisation mon controlleur.
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
26 @ManagedBean(name="classecontroller") @SessionScoped public class ClasseController implements Serializable { private Etablissements etablissement; private Classe classe = new Classe(); private Niveau niveau = new Niveau(); private Personne currentUser; public ClasseController() { } @PostConstruct void initialiseSession() { etablissement = new Etablissements(); Etablissements testEtab = null; testEtab = (Etablissements) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(GlobalFonctions.ETAB_ACTIF); if (testEtab != null) { etablissement = testEtab; } else { etablissement = (Etablissements) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get(GlobalFonctions.ETAB_ACTIF); } } // setter getters }
J'aimerai savoir comment je peux implémenter cela sans trop changer le code
Voici le code Spring:
Merci
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
26 @Named("classecontroller") @SessionScoped public class ClasseController implements Serializable { private Etablissements etablissement; private Classe classe = new Classe(); private Niveau niveau = new Niveau(); private Personne currentUser; public ClasseController() { } @PostConstruct void initialiseSession() { etablissement = new Etablissements(); Etablissements testEtab = null; testEtab = (Etablissements) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(GlobalFonctions.ETAB_ACTIF); if (testEtab != null) { etablissement = testEtab; } else { etablissement = (Etablissements) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get(GlobalFonctions.ETAB_ACTIF); } } // setter getters }
Partager