Spring framework                     Motto: Musíte rozbít vejce když chcete udělat omeletu                Spring framework...
Spring AOP                     Netradiční přístup k řešení tradičních problémůSunday 13 May 2012                          ...
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ří k...
AOP                     • Nový přístup pro řešení tradičních oblastí                       • implementační overhead       ...
Základní pojmy                     • Join Point                       • Definuje stavy, ve kterých se může nacházet vykonáv...
Aspect = Advice + PointcutSunday 13 May 2012                         6
Advices                       • Before advice                       • After returning advice                       • After...
Jednoduchý profilovací aspectSunday 13 May 2012                  8
Anotace deklarující Aspect                             Anotace deklarující advice      @Aspect                            ...
Spring AOP             • Integrace AspectJ             • Anotace, XML             • Runtime weaving proxy                 ...
Spring AOP weavingSunday 13 May 2012                        11
AOP netradiční případy užití                     • Synchronizace                     • Kontrola zámků                     ...
Praktické cvičeníSunday 13 May 2012                       13
• Upravte třídu CachingAspect, aby sloužila jako cache                       pro UserStorageDao                       • Ja...
Upcoming SlideShare
Loading in...5
×

Spring aop

499

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
499
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Spring aop"

  1. 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. 2. Spring AOP Netradiční přístup k řešení tradičních problémůSunday 13 May 2012 2
  3. 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 3rozdil oproti proxy třídě či wrapperu - možnost aplikovat hromadně
  4. 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. 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 aspektSunday 13 May 2012 5
  6. 6. Aspect = Advice + PointcutSunday 13 May 2012 6
  7. 7. Advices • Before advice • After returning advice • After (finally) advice • Around adviceSunday 13 May 2012 7Before 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 themethod 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 anexception.
  8. 8. Jednoduchý profilovací aspectSunday 13 May 2012 8
  9. 9. Anotace deklarující Aspect Anotace deklarující advice @Aspect Pointcut definice public class ProfilingAspect { @Around("execution(* cz.sweb.pichlik.springaop.dao.UserStorageDao.*(..))")‫‏‬ public Object tracingMethod(ProceedingJoinPoint call) throws Throwable{ long start = System.nanoTime(); try{ return call.proceed(); Volání target objektu }finally{ long time = System.nanoTime() - start; System.out.println("Invocation time:"+ time + "ns"); } } }Sunday 13 May 2012 9
  10. 10. Spring AOP • Integrace AspectJ • Anotace, XML • Runtime weaving proxy • proxy • Load time weaving • classloaderSunday 13 May 2012 10AspectJ integrace - ořezaný pointcut langauge
  11. 11. Spring AOP weavingSunday 13 May 2012 11
  12. 12. AOP netradiční případy užití • Synchronizace • Kontrola zámků • Re-try volání • Překlad výjimek • Cacheování výsledků volání metodSunday 13 May 2012 12
  13. 13. Praktické cvičeníSunday 13 May 2012 13
  14. 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ítSunday 13 May 2012 14
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×