Java实现aop代码举例
时间: 2023-05-12 21:05:12 浏览: 69
以下是一个简单的Java AOP代码示例:
// 定义一个切面类
public class LoggingAspect {
// 定义一个前置通知
public void beforeAdvice() {
System.out.println("执行方法前记录日志...");
}
}
// 定义一个业务类
public class UserService {
// 定义一个业务方法
public void addUser() {
System.out.println("添加用户...");
}
}
// 定义一个切面代理类
public class UserServiceProxy implements InvocationHandler {
private Object target;
public UserServiceProxy(Object target) {
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// 创建切面对象
LoggingAspect aspect = new LoggingAspect();
// 执行前置通知
aspect.beforeAdvice();
// 执行业务方法
Object result = method.invoke(target, args);
return result;
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
// 创建业务对象
UserService userService = new UserService();
// 创建切面代理对象
UserServiceProxy proxy = new UserServiceProxy(userService);
// 获取代理对象
UserService userServiceProxy = (UserService) Proxy.newProxyInstance(
userService.getClass().getClassLoader(),
userService.getClass().getInterfaces(),
proxy);
// 调用业务方法
userServiceProxy.addUser();
}
}