1. Spring framework
Motto: Musíte rozbít vejce když chcete udělat omeletu
Spring framework training materials by Roman Pichlík is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Sunday 13 May 2012 1
2. Spring AOP
Netradiční přístup k řešení tradičních problémů
Sunday 13 May 2012 2
3. Myšlenka
„V každé aplikaci máme kousky kódu, které se nám prolínají všemi
vrstvami naší aplikace, ale do žádné nepatří konkrétně. Těmto kouskům
kódu můžeme říkat aspekty.
AOP nabízí možnost tyto aspekty prolínat stávajícím kódem aniž
bychom tento kód museli modifikovat.“
Sunday 13 May 2012 3
rozdil oproti proxy třídě či wrapperu - možnost aplikovat hromadně
4. AOP
• Nový přístup pro řešení tradičních oblastí
• implementační overhead
• Aspekt
• Ucelený kus kódu
• Java třída
• Typy
• Produkční
• Vývojové
Sunday 13 May 2012 4
5. Základní pojmy
• Join Point
• Definuje stavy, ve kterých se může nacházet vykonávání kódu např.
volání metody, volání konstruktoru, statická inicializace atd.
• Pointcut
• Definuje jazyk, pomocí kterého se lze na jednotlivé Join Ponty zavěsit
• Advice
• Umožňuje nadefinovat vlastní kód, který se vykoná v závislosti na
zavěšení pointcatu. V podstatě když nastane tohle, udělám toto.
• Weaving
• začlenění aspectu do kódu aplikace
• Target object
• cílový objekt, který je obohacen o aspekt
Sunday 13 May 2012 5
7. Advices
• Before advice
• After returning advice
• After (finally) advice
• Around advice
Sunday 13 May 2012 7
Before advice: Advice that executes before a join point, but which does not have the ability to prevent execution flow proceeding to the join point (unless it throws an exception).
After returning advice: Advice to be executed after a join point completes normally: for example, if a method returns without throwing an exception.
After throwing advice: Advice to be executed if a method exits by throwing an exception.
After (finally) advice: Advice to be executed regardless of the means by which a join point exits (normal or exceptional return).
Around advice: Advice that surrounds a join point such as a method invocation. This is the most powerful kind of advice. Around advice can perform custom behavior before and after the
method invocation. It is also responsible for choosing whether to proceed to the join point or to shortcut the advised method execution by returning its own return value or throwing an
exception.
14. • Upravte třídu CachingAspect, aby sloužila jako cache
pro UserStorageDao
• Jako cache lze použít obyčejnou Mapu
• Update, Save, Delete metody invalidaují cache
• Get metoda vrací výsledek z cache a nebo deleguje
volání na DAO a výsledek uloží do cache
• CachingAspectTest musí projít
Sunday 13 May 2012 14