创建一个Dog类,向其中加入eat()方法。使用 AOP在eat()方法前后添加喝水的drink()方法,之后添加run()跑的方法。(使用XML方式或注解 方式实现)相关分别建在哪些文件夹下,运行出结果
时间: 2023-06-14 22:05:25 浏览: 328
java aop拦截方法类前后添加日志
使用注解方式实现:
首先,在项目中引入 Spring AOP 的依赖,然后创建一个 Dog 类,实现 eat() 方法:
```java
public class Dog {
public void eat() {
System.out.println("The dog is eating.");
}
}
```
接着,我们使用注解的方式来实现 AOP,创建一个切面类,其中包含 drink() 和 run() 方法,并使用 @Before 和 @After 注解分别在 eat() 方法的前后调用 drink() 和 run() 方法:
```java
@Aspect
@Component
public class DogAspect {
@Before("execution(public void eat())")
public void drink() {
System.out.println("The dog is drinking water.");
}
@After("execution(public void eat())")
public void run() {
System.out.println("The dog is running.");
}
}
```
最后,在 Spring 的配置文件中配置扫描切面类的包路径,并进行 AOP 配置:
```xml
<context:component-scan base-package="com.example.aop" />
<aop:aspectj-autoproxy />
```
这样,当我们调用 Dog 类的 eat() 方法时,就会在方法的前后调用 drink() 和 run() 方法了。
运行结果如下:
```
The dog is drinking water.
The dog is eating.
The dog is running.
```
以上就是使用注解方式实现 AOP 的示例代码。
阅读全文