Відповіді:
Подумайте про занепокоєння як про функціональну групу, наприклад реєстрацію, аудит, безпеку
Ці функції коли-небудь присутні в більшості кодів, але насправді вони не живуть у наших класах на тварин-> собак - вони є функціональними можливостями, які повинні жити в багатьох класах - вони є суперечливими проблемами .
Joinpoint місце в коді , де аспект код насправді біг.
Зріз точок , як сказати , що код працює на jointpoint.
Плетіння - це коли компілятор / система приймає ваш звичайний код і включає весь код AOP, щоб він запускав правильний код тощо - може вважати це додатковим кроком перед компіляцією.
Простий зрозумілий приклад:
Зауважте, що термінологія дещо відрізняється між різними реалізаціями та рамками AOP.
Кожне визначення будується на попередніх.
Щось, що вас турбує (турбує) скрізь (наскрізний) у вашому застосуванні. наприклад, лісозаготівля чи безпека
Шматок коду, який автоматично додається до , після або обох ( навколо ) наявного коду
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
Місце у виконанні коду, де виконується частина аспекту.
Точка, де ваш аспект "приєднується" до точки. У "до" JoinPoint ви матимете доступ до параметрів, у "after" joinPoint ви отримаєте доступ до значення, що повертається. Якщо викид буде викинуто, вам може знадобитися "спробувати-заставити нарешті", щоб обробити його або повторно кинути.
Процес додавання аспектів навколо точки