Все аннотации AOP и их использование
1. @Aspect
Обозначает класс как аспект.
2. @Pointcut
Определяет срез, на который будет ссылаться Advice.
3. @Before
Совет, выполняющийся перед методом.
4. @After
Совет, выполняющийся после метода, независимо от его результата.
5. @AfterReturning
Совет, выполняющийся после успешного выполнения метода.
6. @AfterThrowing
Совет, выполняющийся при выбросе исключения.
7. @Around
Оборачивает метод, позволяя контролировать его выполнение.
8. @EnableAspectJAutoProxy
Включает поддержку AOP в приложении.
#Java #Training #Spring #AOP #AOP_Annotations
1. @Aspect
Обозначает класс как аспект.
@Aspect
@Component
public class LoggingAspect {
// Pointcut и Advice
}
2. @Pointcut
Определяет срез, на который будет ссылаться Advice.
@Pointcut("execution(* com.example.service.*.*(..))")
public void serviceLayer() {}
3. @Before
Совет, выполняющийся перед методом.
@Before("serviceLayer()")
public void logBefore() {
System.out.println("Before method");
}
4. @After
Совет, выполняющийся после метода, независимо от его результата.
@After("serviceLayer()")
public void logAfter() {
System.out.println("After method");
}
5. @AfterReturning
Совет, выполняющийся после успешного выполнения метода.
@AfterReturning(pointcut = "serviceLayer()", returning = "result")
public void logAfterReturning(Object result) {
System.out.println("Method returned: " + result);
}
6. @AfterThrowing
Совет, выполняющийся при выбросе исключения.
@AfterThrowing(pointcut = "serviceLayer()", throwing = "ex")
public void logAfterThrowing(Exception ex) {
System.out.println("Exception thrown: " + ex.getMessage());
}
7. @Around
Оборачивает метод, позволяя контролировать его выполнение.
@Around("serviceLayer()")
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("Before method");
Object result = joinPoint.proceed();
System.out.println("After method");
return result;
}
8. @EnableAspectJAutoProxy
Включает поддержку AOP в приложении.
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {}
#Java #Training #Spring #AOP #AOP_Annotations