
Est-ce que je peux m'en servir pour générer des accesseurs dans une bean ?
Pour le savoir, je crée un bean avec un attribut property :
Code java : | Sélectionner tout |
1 2 3 4 5 6 | public class SampleBean { public String property; } |
Maintenant, je crée un aspect dans lequel je déclare les accesseurs de l'attribut property.
La syntaxe est simple : il suffit de préfixer le nom des méthode par le type cible (ici SampleBean) :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | privileged aspect SampleBean_propertyITD { public String SampleBean.getProperty() { System.out.println("SampleBean.getProperty() généré par ITD"); return this.property; } public void SampleBean.setProperty(String value) { System.out.println("SampleBean.setProperty(value) généré par ITD"); this.property = value; } } |
Maintenant j'aimerais pouvoir invoquer mes accesseurs automatiquement lorsque j'utilise l'attribut.
Je crée donc des advices qui peuvent tirer parti de mes méthodes générées par ITD.
Cette fois-ci la syntaxe est un peu plus compliquée mais reste compréhensible :
Code java : | Sélectionner tout |
1 2 3 4 5 6 7 8 | java.lang.String around(SampleBean instance) : get(java.lang.String SampleBean.property) && target(instance) && ! withincode(java.lang.String SampleBean.getProperty()) { return instance.getProperty(); } void around(SampleBean instance, java.lang.String value) : set(java.lang.String SampleBean.property) && args(value) && target(instance) && ! withincode(void SampleBean.setProperty(*)){ instance.setProperty(value); } |
Il ne reste plus qu'à utiliser mon SampleBean :
Code java : | Sélectionner tout |
1 2 3 4 | SampleBean bean = new SampleBean(); bean.property = "value"; value = bean.property; |
L'exécution de ce code affiche les lignes suivantes dans la console :
SampleBean.setProperty(value) généré par ITD
SampleBean.getProperty() généré par ITD
SampleBean.getProperty() généré par ITD

Mais heureusement, il y a une solution : générer les aspects. Pour cela je montrerai dans un prochain billet comment utiliser un AnnotationProcessor.
Vous avez lu gratuitement 34 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.