• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Spring aop
 

Spring aop

on

  • 548 views

 

Statistics

Views

Total Views
548
Views on SlideShare
548
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Spring aop Spring aop Presentation Transcript

    • 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
    • Spring AOP Netradiční přístup k řešení tradičních problémůSunday 13 May 2012 2
    • 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ě
    • 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
    • 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
    • Aspect = Advice + PointcutSunday 13 May 2012 6
    • 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.
    • Jednoduchý profilovací aspectSunday 13 May 2012 8
    • 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
    • Spring AOP • Integrace AspectJ • Anotace, XML • Runtime weaving proxy • proxy • Load time weaving • classloaderSunday 13 May 2012 10AspectJ integrace - ořezaný pointcut langauge
    • Spring AOP weavingSunday 13 May 2012 11
    • 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
    • Praktické cvičeníSunday 13 May 2012 13
    • • 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