定义一个MyClass类(或接口),包括math()、english()和physics()方法,可以简单模拟输出:上数学课/英语课/物理课….,上每一门课之前先要执行check()方法查看课表和preparation()方法检查上课用品,上完后需要执行pack()方法收拾书包,这些工作定义在MyAspect类中。请选择使用JDK动态代理、CGLIB代理、ProxyFactoryBean或者AspectJ中的某一种方式来实现增强处理。其他相关文件
时间: 2023-06-19 14:09:44 浏览: 45
这里给出使用AspectJ实现增强处理的示例代码:
```java
public interface MyClass {
void math();
void english();
void physics();
}
public class MyClassImpl implements MyClass {
@Override
public void math() {
System.out.println("上数学课");
}
@Override
public void english() {
System.out.println("上英语课");
}
@Override
public void physics() {
System.out.println("上物理课");
}
}
public aspect MyAspect {
before() : execution(* MyClass.*()) {
check();
preparation();
}
after() : execution(* MyClass.*()) {
pack();
}
private void check() {
System.out.println("查看课表");
}
private void preparation() {
System.out.println("检查上课用品");
}
private void pack() {
System.out.println("收拾书包");
}
}
```
使用AspectJ的增强处理,可以在不修改原来类的情况下,将一些额外的代码织入到目标类的方法执行前后。在这个示例中,我们将check()和preparation()方法织入到所有MyClass接口的实现类的方法执行前,将pack()方法织入到所有MyClass接口的实现类的方法执行后。
需要注意的是,使用AspectJ需要通过编译器或者Maven插件进行编译,生成增强后的class文件。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)