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.