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("执行方法后");
    }
}

配置文件