Spring学习笔记4----静态代理模式理解AOP实现机制

加深理解AOP

在这里插入图片描述

代码实现

//抽象方法,增删改查
public interface UserService {
    
    
    public void add();
    public void delete();
    public void update();
    public void query();
}

//实现类
public class UserServiceImpl implements UserService {
    
    
    public void add() {
    
    
        System.out.println("增加了一个用户");
    }

    public void delete() {
    
    
        System.out.println("删除了一个用户");
    }

    public void update() {
    
    
        System.out.println("修改了一个用户");
    }

    public void query() {
    
    
        System.out.println("查询了一个用户");
    }
}


//代理类
package com.kuang.demo02;

public class UserServiceProxy implements UserService {
    
    
    private UserServiceImpl userService;//使用组合将实现类丢进代理类

    public void setUserService(UserServiceImpl userService) {
    
    
        this.userService = userService;
    }

    public void add() {
    
    
        log("add");
        userService.add();
    }

    public void query() {
    
    
        log("query");
        userService.query();//调用了UserServiceImpl中的query
    }

    public void update() {
    
    
        log("update");
        userService.update();
    }

    public void delete() {
    
    
        log("delete");
        userService.delete();
    }

    //打印日志方法
    public void log(String msg){
    
    
        System.out.println("使用了"+msg+"方法");
    }
}



//测试类

package com.kuang.demo02;

public class Client {
    
    
    public static void main(String[] args) {
    
    
        UserServiceImpl userService=new UserServiceImpl();//实现类
       // userService.add();
        UserServiceProxy proxy=new UserServiceProxy();
        proxy.setUserService(userService);
        proxy.delete();
        proxy.add();
        proxy.query();
        proxy.update();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45263852/article/details/113873499