AOP und Spring :: Ein transparenter, regelbasierter Dispatcher
- torisan.de (Toralf Richter)
AOP und Spring :: Ein transparenter, regelbasierter Dispatcher
Synopsis:
Dargestellt und erläutert werden sollen kurz die Problemstellung und der Lösungsweg für untenstehende
Problembeschreibung, ggfs. mit den entsprechenden Verweisen und Erläuterungen zu den entsprechenden Paradigmen der Aspektorientierung.
Anhand von beispielhaften Code (Java) und Konfiguration (XML, Spring-Beans DTD) wird die Lösung dem Leser erläutert und dieser mit Hilfe der
kommentierten Beispiele in die Lage versetzt, die Lösung nachzuvollziehen und ggfs. für den eigenen Einsatz zu adaptieren.
Problem:
Benötigt wurde ein möglichst generischer Ansatz für einen Dispatcher" oder "Delegator" der anhand von gekapselten
Bedingungen oder Regeln Anfragen für eine (theoretisch) beliebig große Anzahl von unabhängigen Objekten ("Delegates") entgegennehmen
und an diese zur Verarbeitung weitergeben kann.
Der fach- und anwendungsspezifischer Code sollte nicht durch unter Umständen viele und stark variable und damit häufig zu ändernde
Verweise auf Delegates und einen jeweiligen Delegationsmechanismus und seine Regeln "verschmutzt" werden.
Lösungsansatz:
Die Lösung erfolgte unter Beibehaltung einer klaren Trennung von Zuständigkeiten zwischen Anwendungsobjekten
sowie dem Dispatcher und dessen Regeln. Die technische Umsetzung erfolgte mit dem Spring-Framework, insbesondere auf der
Basis der in Spring eingebauten Möglichkeiten zur Umsetzung aspektorientierter Entwicklungen.
Herangezogen und kombiniert wurden die von Spring angebotenen Basisfunktionalitäten
hinsichtlich introduction (auch als mixin bekannt)und method interception.