JAVA_IIBRARY Telegram 1700
Spring Boot с AOP:

Spring Boot позволяет использовать аспектно-ориентированное программирование , чтобы вынести сквозную логику (например, логирование, безопасность или кеширование) отдельно от бизнес-логики.
Можно даже создавать свои аннотации, которые автоматически навешивают нужное поведение, сохраняя код чистым и декларативным

1. Создаётся аннотация @LogExecutionTime

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LogExecutionTime {}


Её можно навесить на любой метод, чтобы включить замер времени выполнения.

2. Аспект LoggingAspect

@Aspect
@Component
public class LoggingAspect {
@Around("@annotation(LogExecutionTime)")
public Object logExecution(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();

Object result = joinPoint.proceed(); // выполнить метод

long timeTaken = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + timeTaken + " ms");

return result;
}
}


- Перехватывает вызов методов с аннотацией @LogExecutionTime
- Сохраняет время старта → выполняет метод → считает разницу → выводит результат в лог.

3. Контроллер TestController

@RestController
public class TestController {

@GetMapping("/hello")
@LogExecutionTime
public String hello() throws InterruptedException {
Thread.sleep(500); // имитация работы
return "Hello, World!";
}
}


- Метод hello() помечен @LogExecutionTime
- При каждом запросе на /hello метод будет логироваться с замером времени.

AOP здесь убирает дублирование логики измерения времени.
Вместо того чтобы вставлять System.currentTimeMillis() в каждый метод, всё вынесено в один аспект.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132



tgoop.com/Java_Iibrary/1700
Create:
Last Update:

Spring Boot с AOP:

Spring Boot позволяет использовать аспектно-ориентированное программирование , чтобы вынести сквозную логику (например, логирование, безопасность или кеширование) отдельно от бизнес-логики.
Можно даже создавать свои аннотации, которые автоматически навешивают нужное поведение, сохраняя код чистым и декларативным

1. Создаётся аннотация @LogExecutionTime

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LogExecutionTime {}


Её можно навесить на любой метод, чтобы включить замер времени выполнения.

2. Аспект LoggingAspect

@Aspect
@Component
public class LoggingAspect {
@Around("@annotation(LogExecutionTime)")
public Object logExecution(ProceedingJoinPoint joinPoint) throws Throwable {
long start = System.currentTimeMillis();

Object result = joinPoint.proceed(); // выполнить метод

long timeTaken = System.currentTimeMillis() - start;
System.out.println(joinPoint.getSignature() + " executed in " + timeTaken + " ms");

return result;
}
}


- Перехватывает вызов методов с аннотацией @LogExecutionTime
- Сохраняет время старта → выполняет метод → считает разницу → выводит результат в лог.

3. Контроллер TestController

@RestController
public class TestController {

@GetMapping("/hello")
@LogExecutionTime
public String hello() throws InterruptedException {
Thread.sleep(500); // имитация работы
return "Hello, World!";
}
}


- Метод hello() помечен @LogExecutionTime
- При каждом запросе на /hello метод будет логироваться с замером времени.

AOP здесь убирает дублирование логики измерения времени.
Вместо того чтобы вставлять System.currentTimeMillis() в каждый метод, всё вынесено в один аспект.

👉 Java Portal

BY Java Portal | Программирование




Share with your friend now:
tgoop.com/Java_Iibrary/1700

View MORE
Open in Telegram


Telegram News

Date: |

Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel. A vandalised bank during the 2019 protest. File photo: May James/HKFP. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. fire bomb molotov November 18 Dylan Hollingsworth yau ma tei Other crimes that the SUCK Channel incited under Ng’s watch included using corrosive chemicals to make explosives and causing grievous bodily harm with intent. The court also found Ng responsible for calling on people to assist protesters who clashed violently with police at several universities in November 2019.
from us


Telegram Java Portal | Программирование
FROM American