@RequestMapping(value = "/hi") public String doSomething() { log.info("This is a log message."); return "hi"; } 做aop 切面
时间: 2024-04-14 14:27:53 浏览: 78
aop切面demo,基于spring boot制作,很简单实用,可以自己尝试小写框架
您可以通过使用Spring AOP来实现切面。首先,您需要在Spring配置文件中启用AOP支持。您可以使用`<aop:aspectj-autoproxy>`元素来实现这一点。例如:
```xml
<aop:aspectj-autoproxy/>
```
接下来,您需要创建一个切面类,该类包含切入点和通知。在这种情况下,我们将在`doSomething`方法执行前后添加日志记录通知。这是一个示例切面类的代码:
```java
@Aspect
@Component
public class LoggingAspect {
@Before("execution(public String doSomething())")
public void beforeDoSomething(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
System.out.println("Before executing " + methodName);
}
@AfterReturning("execution(public String doSomething())")
public void afterDoSomething(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
System.out.println("After executing " + methodName);
}
}
```
在切面类中,我们使用`@Aspect`注释将类声明为切面,并使用`@Component`注释将其作为Spring组件进行管理。
在上述示例中,我们在`doSomething`方法执行前后添加了两个通知:`beforeDoSomething`和`afterDoSomething`。`@Before`注释表示`beforeDoSomething`方法将在切入点方法执行前执行,而`@AfterReturning`注释表示`afterDoSomething`方法将在切入点方法成功返回后执行。
在通知方法中,您可以执行所需的操作,例如记录日志或执行其他附加行为。
最后,构建并运行您的应用程序,当访问`/hi`接口时,您将看到相应的日志记录输出。
请注意,您还可以使用其他类型的通知,例如`@AfterThrowing`用于捕获方法抛出的异常,或`@Around`用于在切入点方法执行前后执行自定义逻辑。这取决于您的需求和业务逻辑。
阅读全文