AOP āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻā§āĻ°āĻ¸-āĻāĻžāĻāĻŋāĻ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯ā§āĻāĻŋ āĻ¯ā§āĻā§āĻ¨ āĻā§āĻĄ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻšā§āĻŦāĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻāĻ āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, AOP āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋāĻā§ āĻŽā§āĻ˛ āĻā§āĻĄā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻāĻŦāĻ āĻāĻ˛ā§āĻ˛āĻŽā§āĻŦāĻāĻžāĻŦā§ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ˛ā§āĨ¤ āĻāĻ°āĻ āĻā§, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§āĻ¤āĻŋāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§āĻ¤āĻŋ āĻ¨āĻŋāĻā§āĻ āĻŦāĻŋāĻāĻļāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ AOP āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ¯āĻŧāĻāĻž āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻ˛ āĻ˛āĻāĻŋāĻ. āĻ˛āĻāĻŋāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ AOP āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§:-
āĻ˛āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻšāĻ: āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻŋāĻā§ āĻāĻŋāĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻŦāĻž āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻžāĨ¤
-
āĻ˛āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻā§ˇ
-
āĻ˛āĻāĻŋāĻ āĻā§āĻĄ āĻ¯ā§āĻā§āĻ¨ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¸ āĻ¯āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§ āĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻā§āĻĄāĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ āĻ¸āĻ°āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻĄ āĻāĻ˛ā§ āĻā§āĻā§ āĻāĻŦāĻ āĻāĻŋāĻā§āĻ āĻŽāĻŋāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤
- āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻĒā§āĻĨāĻ āĻā§āĻĄ āĻ¯āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻŦāĻ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
AOP āĻāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻ¨ā§āĻ¤āĻŋ
āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻ°āĻ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽā§ AOP āĻāĻ° āĻŽā§āĻ˛ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻā§āĻ¨ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ â āĻ¯ā§āĻāĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻĄāĻžāĻāĻž āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦāĻž āĻā§āĻĄāĨ¤ āĻ¯ā§āĻāĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻā§, āĻĒāĻ°ā§ āĻŦāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¨āĻŋāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ)āĨ¤ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ :-
āĻāĻā§ â āĻāĻžāĻ°ā§āĻā§āĻ āĻŽā§āĻĨāĻĄ, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻĻā§āĻļāĻāĻŋāĻā§ āĻāĻā§ āĻāĻ¸āĻā§ āĻŦāĻ˛ā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻ°āĻž @Before āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ .aj āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻŦā§ āĨ¤
- āĻāĻĢāĻāĻžāĻ° â āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ (āĻāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ) āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻāĻĒāĻĻā§āĻļ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ā§āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻāĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž @After āĻā§āĻāĻžāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻāĻāĻŋ āĻĒāĻ°ā§ āĻāĻ¸ā§āĨ¤
.aj āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻāĻāĻŋ after() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
-
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĒāĻ°ā§ â āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻāĻŋ āĻ¤āĻāĻ¨āĻ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻ˛āĻā§āĻˇā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤
āĻ¯āĻāĻ¨ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻĒā§āĻ¤āĻŋāĻ° āĻĒāĻ°ā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻāĻŋāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ @AfterReturning āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
.aj āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻāĻāĻŋ āĻšāĻŦā§ after() āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨āĻŋāĻ (āĻ āĻŦāĻā§āĻā§āĻ āĻ āĻŦāĻā§āĻā§āĻ) āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
-
āĻ¨āĻŋāĻā§āĻˇā§āĻĒā§āĻ° āĻĒāĻ°ā§ â āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻāĻŋ āĻāĻŽāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻā§āĻĻāĻŋāĻˇā§āĻ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ§āĻ°āĻŖā§āĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻāĻžāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ°ā§āĻ˛ āĻŦā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ˛āĻ āĻāĻ°āĻ¤ā§)āĨ¤
āĻļā§āĻ°ā§āĻŖā§āĻāĻ¤ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, @AfterThrowing āĻā§āĻāĻžāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
.aj āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻāĻāĻŋ āĻšāĻŦā§ after() āĻ¨āĻŋāĻā§āĻˇā§āĻĒ (āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ e) āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
-
āĻāĻžāĻ°āĻĒāĻžāĻļā§ - āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ. āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻāĻŋāĻ°ā§ āĻĨāĻžāĻā§, āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻāĻāĻŋ āĻ¯ā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¯ā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ ā§āĻ¯āĻžāĻĄāĻāĻžāĻ¨ā§āĻ¸ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻŦāĻ āĻĒāĻ°ā§ āĻāĻ˛ā§āĨ¤
āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻļā§āĻĒāĻžāĻļā§āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻžāĻ¯āĻŧā§ āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻŋāĻā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°ā§ āĻ¤āĻŦā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨āĨ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻāĻŋāĻā§ āĻāĻ˛ āĻ¨āĻž āĻāĻ°ā§ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢā§āĻ°āĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻž āĻāĻžāĻ¨ āĻ¤āĻž āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻā§āĻ˛āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĻāĻŋāĻ, āĻāĻŽāĻ°āĻž @Around āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻŽā§āĻĄāĻŧāĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ .aj āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻāĻžāĻ°ā§ āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ , āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ () āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻŦā§ āĨ¤
-
āĻāĻŽā§āĻĒāĻžāĻāĻ˛-āĻāĻžāĻāĻŽ āĻāĻāĻāĻŋāĻ â āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋāĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻŦāĻ āĻā§āĻĄ āĻĨāĻžāĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻĻāĻŋāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ AspectJ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻŦāĻ āĻĻāĻŋāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨;
-
āĻĒā§āĻ¸ā§āĻ-āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻāĻāĻŋāĻ (āĻŦāĻžāĻāĻ¨āĻžāĻ°ā§ āĻāĻāĻāĻŋāĻ) â āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻĄā§āĻ° āĻĻāĻŋāĻāĻā§āĻ˛ā§ āĻŦā§āĻ¨āĻ¤ā§ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¨āĻž āĻĒāĻžāĻ°ā§āĻ¨ āĻŦāĻž āĻ¨āĻž āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻā§āĻ˛āĻžāĻ¸ āĻŦāĻž āĻāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĻāĻŋāĻāĻā§āĻ˛ā§ āĻāĻ¨āĻā§āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨;
-
āĻ˛ā§āĻĄ-āĻāĻžāĻāĻŽ āĻāĻāĻāĻŋāĻ â āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻāĻāĻŋāĻ āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¸āĻ˛ā§āĻĄāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ āĻĢāĻžāĻāĻ˛ āĻ˛ā§āĻĄ āĻ¨āĻž āĻāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŦāĻ JVM-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻžāĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¨āĻž āĻāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻ¯āĻŧāĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ˛ā§āĻĄāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻā§āĻ˛āĻŋ āĻšāĻ¯āĻŧ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻŦāĻž "āĻāĻāĻāĻŋāĻ āĻāĻā§āĻ¨ā§āĻ" āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻžāĻāĻžāĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ° āĻĒāĻ°ā§, AOP- āĻāĻ° āĻāĻ°āĻ āĻāĻžāĻ˛ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ , āĻāĻŽāĻ°āĻž āĻā§āĻ "āĻšā§āĻ¯āĻžāĻ˛ā§ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ"-āĻ¸ā§āĻāĻžāĻāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻŦāĨ¤ āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§, āĻāĻŽāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛-āĻāĻžāĻāĻŽ āĻāĻāĻāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° pom.xml āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ :<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.5</version>
</dependency>
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻŦāĻŋāĻļā§āĻˇ ajc āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻšāĻ˛ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻĻāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ IntelliJ IDEA āĻāĻāĻŋāĻā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻāĻŋāĻā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ 5168 75 AspectJ āĻŦāĻŋāĻ¤āĻ°āĻŖā§āĻ° āĻĒāĻĨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻŋāĻ˛. āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ, āĻ¯āĻž āĻāĻŽāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻ¤āĻž āĻšāĻ˛ pom.xml āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻž:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
<showWeaveInfo>true</showWeaveInfo>
<<verbose>true<verbose>
<Xlint>ignore</Xlint>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
āĻāĻ° āĻĒāĻ°ā§, Maven āĻĨā§āĻā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻž āĻāĻŦāĻ mvn clean compile āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĨ¤ āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻ 1
āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤ āĻāĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĨāĻžāĻāĻŦā§ āĻ¯āĻž āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻ¨āĻžāĻŽ āĻŽā§āĻĻā§āĻ°āĻŖ āĻāĻ°ā§:public class Main {
public static void main(String[] args) {
printName("Tanner");
printName("Victor");
printName("Sasha");
}
public static void printName(String name) {
System.out.println(name);
}
}
āĻāĻāĻžāĻ¨ā§ āĻāĻāĻŋāĻ˛ āĻāĻŋāĻā§ āĻ¨ā§āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽ āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ, āĻāĻŽāĻ°āĻž āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ:
public aspect GreetingAspect {
pointcut greeting() : execution(* Main.printName(..));
before() : greeting() {
System.out.print("Hi, ");
}
}
āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŽāĻ¤ā§āĨ¤ āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻāĻŋ āĻāĻāĻā§: āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻžāĻ āĻšāĻ˛ āĻāĻ¯āĻŧā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ; greeting() āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻžāĻā§āĻ° āĻ¨āĻžāĻŽ; : execution āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ Main.printName(...) āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ ( * ) āĻāĻ˛ā§āĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ āĨ¤ āĻāĻ°āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ¸ā§ â before() â āĻ¯āĻž āĻāĻžāĻ°ā§āĻā§āĻ āĻŽā§āĻĨāĻĄ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ : greeting() āĻšāĻ˛ āĻ¸ā§āĻ āĻāĻžāĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¯āĻž āĻāĻ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļā§ āĻ¸āĻžāĻĄāĻŧāĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻāĻŽāĻ°āĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽā§āĻ˛ āĻ
āĻāĻļāĻāĻŋ āĻĻā§āĻāĻŋ, āĻ¯āĻž āĻāĻžāĻāĻž āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ˛ā§āĻāĻž, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŦā§āĻāĻŋāĨ¤ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ āĻĻāĻŋāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻ˛āĻžāĻ , āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻĒāĻžāĻŦ:
@Aspect
public class GreetingAspect{
@Pointcut("execution(* Main.printName(String))")
public void greeting() {
}
@Before("greeting()")
public void beforeAdvice() {
System.out.print("Hi, ");
}
}
.aj āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°ā§ , āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻāĻžāĻ¨ā§ āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻ¯āĻŧā§ āĻāĻ ā§:
- @āĻāĻ¸āĻĒā§āĻā§āĻ āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻāĻŋ āĻāĻāĻāĻŋ āĻĻāĻŋāĻ;
- @Pointcut("execution(* Main.printName(String))") āĻšāĻ˛ āĻāĻžāĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¯āĻž Main.printName- āĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻš āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ° āĻ§āĻ°āĻ¨ āĻšāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻ ;
- @Before("greeting()") āĻšāĻ˛ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻ¯āĻž āĻ āĻāĻŋāĻŦāĻžāĻĻāĻ¨() āĻāĻžāĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻĄā§ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻ 2
āĻ§āĻ°ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻā§ āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋāĻā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĨā§āĻā§ āĻŦāĻ˛āĻŋ :public class Main {
public static void main(String[] args) {
performSomeOperation("Tanner");
}
public static void performSomeOperation(String clientName) {
System.out.println("Performing some operations for Client " + clientName);
}
}
āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ "āĻāĻĻā§āĻŽ-āĻ˛ā§āĻ¨āĻĻā§āĻ¨" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ @Around āĻā§āĻāĻžāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ:
@Aspect
public class TransactionAspect{
@Pointcut("execution(* Main.performSomeOperation(String))")
public void executeOperation() {
}
@Around(value = "executeOperation()")
public void beforeAdvice(ProceedingJoinPoint joinPoint) {
System.out.println("Opening a transaction...");
try {
joinPoint.proceed();
System.out.println("Closing a transaction...");
}
catch (Throwable throwable) {
System.out.println("The operation failed. Rolling back the transaction...");
}
}
}
ProceedingJoinPoint āĻ
āĻŦāĻā§āĻā§āĻā§āĻ° āĻ
āĻā§āĻ°āĻ¸āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ , āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļā§ āĻāĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻŽā§āĻĄāĻŧāĻžāĻ¨ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§ āĻŦāĻ˛āĻŋāĨ¤ āĻ
āĻ¤āĻāĻŦ, āĻāĻĒāĻ°ā§āĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻā§āĻĄ joinPoint.proceed(); āĻāĻā§ āĻāĻā§ , āĻ¯āĻāĻ¨ āĻ¨āĻŋāĻā§āĻ° āĻā§āĻĄāĻāĻŋ āĻĒāĻ°ā§ āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž main āĻāĻžāĻ˛āĻžāĻ , āĻāĻŽāĻ°āĻž āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻāĻŋ āĻĒāĻžāĻ:
public static void performSomeOperation(String clientName) throws Exception {
System.out.println("Performing some operations for Client " + clientName);
throw new Exception();
}
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ¤ā§:
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻ 3
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻ¸ā§āĻ¨ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻ˛āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻā§ āĻāĻ°āĻŋāĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§, Main- āĻ āĻāĻāĻŦāĻžāĻ° āĻĻā§āĻā§āĻ¨ , āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻāĻĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋ:public class Main {
private String value;
public static void main(String[] args) throws Exception {
Main main = new Main();
main.setValue("<some value>");
String valueForCheck = main.getValue();
main.checkValue(valueForCheck);
}
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
public void checkValue(String value) throws Exception {
if (value.length() > 10) {
throw new Exception();
}
}
}
āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ , āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¨ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ setValue āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ getValue āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻā§āĻāĻā§āĻ¯āĻžāĻ˛ā§āĻā§ āĻāĻ˛ āĻāĻ°āĻŋ āĻāĻāĻŋ 10 ââāĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻĻā§āĻ°ā§āĻ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻ¤ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻž āĻšāĻŦā§. āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻ°āĻž āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻžāĻ āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§ āĻĻāĻŋāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¤āĻž āĻĻā§āĻāĻŋ:
@Aspect
public class LogAspect {
@Pointcut("execution(* *(..))")
public void methodExecuting() {
}
@AfterReturning(value = "methodExecuting()", returning = "returningValue")
public void recordSuccessfulExecution(JoinPoint joinPoint, Object returningValue) {
if (returningValue != null) {
System.out.printf("Successful execution: method â %s method, class â %s class, return value â %s\n",
joinPoint.getSignature().getName(),
joinPoint.getSourceLocation().getWithinType().getName(),
returningValue);
}
else {
System.out.printf("Successful execution: method â %s, class â %s\n",
joinPoint.getSignature().getName(),
joinPoint.getSourceLocation().getWithinType().getName());
}
}
@AfterThrowing(value = "methodExecuting()", throwing = "exception")
public void recordFailedExecution(JoinPoint joinPoint, Exception exception) {
System.out.printf("Exception thrown: method â %s, class â %s, exception â %s\n",
joinPoint.getSignature().getName(),
joinPoint.getSourceLocation().getWithinType().getName(),
exception);
}
}
āĻāĻāĻžāĻ¨ā§ āĻāĻŋ āĻšāĻā§āĻā§? @Pointcut("execution(* *(..))") āĻ¸āĻŦ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻŦ āĻāĻ˛ā§ āĻ¯ā§āĻ āĻĻā§āĻŦā§āĨ¤ @AfterReturning(value = "methodExecuting()", returning = "returningValue") āĻšāĻ˛ āĻāĻĒāĻĻā§āĻļ āĻ¯āĻž āĻāĻžāĻ°ā§āĻā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻĒāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻžāĻ¨ā§ āĻĻā§āĻāĻŋ āĻā§āĻ¸ āĻāĻā§:
- āĻ¯āĻāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ â āĻ¯āĻĻāĻŋ (returningValue! = Null) {
- āĻ¯āĻāĻ¨ āĻā§āĻ¨ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ āĻ¨āĻž â āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ {