Odpowiedzi:
Pomyśl o problemie jako o grupie funkcji, np. Rejestrowanie, audyt, bezpieczeństwo
Te funkcje są zawsze obecne w większości kodu, ale tak naprawdę nie na żywo w naszym zdrowiem zwierząt> Nauka psa - są to funkcje, które powinny żyć w wielu zajęć - są poprzeczne cięcie obawy .
JoinPoint to miejsce w kodzie gdzie kod aspekt jest rzeczywiście uciekł.
Punktu przekroju jest to, jak mówią, co kod jest uruchamiany na jointpoint.
Tkactwo - kiedy kompilator / System bierze swój normalny kod i zawiera cały kod AOP tak, że wyzwala prawidłowy kod etc - można myśleć o tym jako dodatkową pre-kompilacji kroku.
Prostym zrozumiałym przykładem jest:
Należy pamiętać, że terminologia różni się nieznacznie między różnymi implementacjami i platformami AOP.
Każda definicja opiera się na poprzednich.
Coś, co przeszkadza (dotyczy) wszędzie (przekrojowo) w całej aplikacji. np rejestrowania lub bezpieczeństwa
Fragment kodu, który jest automatycznie dodawany przed , po lub jednocześnie ( wokół ) istniejącego kodu
Application code
|
|
|
|
\|/
|
JoinPoint ----------->("before" aspect, on the way in) // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
//your application code
Pointcut finish--------> return (foo)
JoinPoint ----------->("after" aspect, on the way out) // just after your intercepted application code
|
\|/
|
|
|
Application code
Miejsce w wykonywaniu kodu, w którym wykonywana jest część aspektu.
Punkt, w którym twój aspekt „łączy się” z cięciem punktowym. Na „przed” JoinPoint będziesz miał dostęp do parametrów, co „po” JoinPoint będziesz mieć dostęp do wartości zwracanej. Jeśli jest wyjątek, możesz potrzebować „try-catch-finally” do uchwytu lub re-rzucić.
Proces dodawania aspekty wokół punktu przekroju