This blog is no longer updated. Please check my new blog here.

Julien Sobczak

Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools

Adrian Colyer

La référence sur la référence des aspects en Java. Même si nous les utilisons peu, bien les comprendre reste toujours aussi intéressant.

General

Paperback 0321245873 479 pages

Review

AspectJ n’a pas connu l’essor que certains imaginaient. L’utilisation combinée de l’API Dynamic Proxy introduite en Java 1.3 avec les annotations apparues en Java ont rendu AspectJ bien moins indispensable. Spring est un parfait exemple avec les annotations @Transactional ou @Cacheable, sans oublier leur propre module AOP qui nous dispense des contraintes d’AspectJ comme le weaver (responsable de modifier les .class pour ajouter le comportement des aspects).

Néanmoins, pour voir le vrai potentiel des aspects, AspectJ reste la référence dans le monde Java et c’est sur elle que repose Spring quand son implémentation est insuffisante. Parmi les auteurs de ce livre, on peut citer Adrian Colyer, leader du projet AspectJ Eclipse et co-créateur du projet AspectJ Development Tools (AJDT). Autant dire que ce livre se veut référence sur le sujet.

La première partie nous plonge immédiatement dans l’action en développant un prototype d’une application d’assurance. On découvre Eclipse, AspectJ, ou AspectJ Development Tools (AJDT). Énormément d’informations dans tous les sens mais au final on apprend beaucoup, aussi bien sur le rôle des aspects que sur l’architecture d’AspectJ.

Retour à la case départ avec la seconde partie qui nous offre la meilleure présentation du langage AspectJ. Des exemples de code source et des diagrammes aident à mieux comprendre aussi bien AspectJ que son fonctionnement et aussi les limitations de Java. La référence tout simplement sur le sujet.

Le nom de la dernière partie “Putting it All Together” est explicite. On développe une nouvelle application. On comprend comment développer des aspects et comment concevoir une application qui les exploite. C’est aussi l’occasion de revenir sur notre prototype initial pour voir les améliorations apportées grâce aux aspects. Un peu d’Hibernate et de Spring. Une dernière partie résolument orienté pratique.