Springboot的前置环绕代码示例
时间: 2024-01-13 19:49:53 浏览: 74
Springboot 示例代码
好的,以下是一个 Spring Boot 的前置环绕代码示例:
```java
@Aspect
@Component
public class LoggingAspect {
private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class);
@Around("@annotation(Loggable)")
public Object loggableAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
Object result;
try {
logger.info("Starting method: {}", joinPoint.getSignature().getName());
result = joinPoint.proceed();
} catch (Throwable t) {
logger.error("Exception caught in method {}: {}", joinPoint.getSignature().getName(), t.getMessage());
throw t;
}
logger.info("Ending method: {}", joinPoint.getSignature().getName());
return result;
}
}
```
在上述代码中,@Aspect 和 @Component 注解用于标记这个类为切面类和组件类。@Around 注解则表示这是一个环绕通知类型。该方法的参数 ProceedingJoinPoint 就是连接点,用于获取方法签名等信息。通过捕获异常,我们可以在 catch 块中记录异常的详细信息。最后,我们使用 getLogger() 方法获取一个 Logger 对象来记录方法的开始和结束。
阅读全文