AOP实现
AOP方式一(使用原生的Spring的API实现)
Maven需要导入的依赖
org.aspectj
aspectjweaver
1.9.4
接口
public interface userService {
void add();
void delete();
void update();
void select();
}
实现类
public class userServiceimpl implements userService{
@Override
public void add() {
System.out.println("增加了一个用户");
}
@Override
public void delete() {
System.out.println("删除了一个用户");
}
@Override
public void update() {
System.out.println("更新了一个用户");
}
@Override
public void select() {
System.out.println("查询了一个用户");
}
}
前置日志
public class beforeLog implements MethodBeforeAdvice {
@Override
public void before(Method method, Object[] args, Object target) throws Throwable {
System.out.println(target.getClass().getName()+"的"+method.getName()+"方法被执行了");
}
}
后置日志
public class afterLog implements AfterReturningAdvice {
//returnValue:返回值
@Override
public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
System.out.println("执行了"+method.getName()+"方法,返回的结果为:"+returnValue);
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
AOP方式二、自定义
自定义类
public class diy {
public void before(){
System.out.println("====方法执行前====");
}
public void after(){
System.out.println("====方法执行后===");
}
}
文件配置
AOP方式三、注解
注解类
@Aspect//标注这个类是一个切面
public class annotation {
@Before("execution(* com.Google.service.userServiceimpl.*(..))")
public void before (){
System.out.println("执行方法前");
}
@After("execution(* com.Google.service.userServiceimpl.*(..))")
public void after(){
System.out.println("执行方法后");
}
}
配置文件