Java for Beginner
680 subscribers
573 photos
158 videos
12 files
871 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Все аннотации AOP и их использование

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