创建一个Dog类,向其中加入eat方法。使用AOP在eat()方法的前后输出任意一段文字(使用注解方式实现)。(详见书P35-P41)
时间: 2024-09-25 22:03:52 浏览: 33
创建一个Dog类,我们首先需要定义一个基本的Dog类,包含一个eat方法。在这个例子中,我们将使用Spring AOP(Aspect Oriented Programming,面向切面编程)来实现在eat方法前后添加日志的功能。首先,确保已导入相关的Spring AOP依赖。
```java
// Dog.java
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.After;
@Aspect
public class LoggingAspect {
@Before("execution(* com.example.Dog.eat(..))") // 定义切入点表达式,这里匹配com.example.Dog类下的eat方法
public void logBeforeEat() {
System.out.println("【前置通知】Dog即将开始吃东西...");
}
@After("execution(* com.example.Dog.eat(..))")
public void logAfterEat() {
System.out.println("【后置通知】Dog已经吃完东西...");
}
}
class Dog {
public void eat() {
System.out.println("Dog正在吃...");
}
}
```
在上述代码中,`LoggingAspect`是一个切面,它包含了两个通知:`logBeforeEat`会在eat方法调用之前执行,而`logAfterEat`会在调用之后执行。当你实例化Dog并调用其eat方法时,这两个日志消息会被自动打印出来。
阅读全文