Szybki start z AspectJ najpierw ściągamy wtyczkę do Eclipse 3.3 za pomocą Help->Software Updates->Find and Install.. dodajemy nowy adres http://download.eclipse.org/tools/ajdt/33/update . Potem jeszcze zapoznanie się z wprowadzającym artykułem do The AspectJ Development Tools (AJDT). W Eclipse tworzymy projekt aspektowy i klikamy Finish:
Teraz stworzymy nową klasę(ctrl + n) Graphic.java
package com.itsilesia;
public class Graphic {
public void draw(){
System.out.println("Painting");
}
public static void main(String[] args) {
Graphic graphic = new Graphic();
graphic.draw();
}
}
Teraz piszemy nasz pierwszy aspekt(ctrl +n AspectJ-> Aspect):
package com.itsilesia.aspects;
public aspect Secure {
pointcut checkSecure():execution(* com.itsilesia.Graphic.draw());
before() : checkSecure() {
System.out.println("Checking dependencies before painting");
}
after() returning : checkSecure() {
System.out.println("Exiting painting");
}
}
Najpierw zdefiniowałem punkt przecięcia (pointcut) która ma zostać użyty podczas wywołania metody draw() z klasy Graphic, później stworzyłem radę(advice) która ma się wykonać przed(before) i po(after) trafieniu na punkt przecięcia.
Teraz uruchamiamy nasz program (Run as -> AspectJ/Java Application):
Checking dependencies before painting
Painting
Exiting painting
Program zadzialal wedlug naszych oczekiwań:)
Zobaczmy co jeszcze oferuje nam Eclipse w przypadku AOP, Cross References:
można zobaczyć gdzie w naszej klasie jest użyte programowanie aspektowe i jakie rady są wywoływane. Istnieje też, cała perspektywa w Eclipse do AOP (Aspect Visualization) pokazująca powiązanie pomiędzy naszymi klasami a aspektami:
A teraz co mi daje zastosowanie AOP w tym przypadku:
- przede wszystkim odizolowanie różnych modułów (budowanie aplikacji graficznej od jej zabezpieczenia)
- bez problemowa wymiana systemu zabezpieczeń, gdyż nigdzie nie jest ona uwzględniona w kodzie obsługi obiektów graficznych
- z punktu widzenia programisty jeden drugiemu nie uprzykrza pracy dopisując jakiś niepotrzebnych linii kodu
Subskrybuj:
Komentarze do posta (Atom)
4 komentarze:
Milutko .... ;-)
Jedna uwaga - w Eclipse 3.4M5 z AJDT z 13.03.2008 nie ma menu Run as -> AspectJ/Java Application, a jedynie Run As > Java Application. Wywołujemy ją z naszą klasą Graphic.
Poza tym warto wspomnieć, gdzie znajduje się widok Cross References, którego nie ma domyślnie w perspektywie Aspect Visualization.
Czekam z niecierpliwością na następne wpisy.
Dzięki za komentarze już zabieram się za pisanie dalszej części :) (uwzględniając uwagi) i spróbuje jeszcze raz mojego podejścia do Eclipse 3.4M.
Jestem pod wrażeniem. Bardzo fajny wpis.
Prześlij komentarz