SSM(5)-静态代理-动态代理

 静态代理:
1.我有一个功能类,实现增删改查,先写接口和实现,然后写个tes类调用,如下代码

public interface UserService {
    public void add();
    public void delete();
    public void update();
    public void query();

}

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 query() {
        System.out.println("查");

    }
}


 @Test
    public void myServiceTest()
    {
        UserServiceImpl userService= new  UserServiceImpl();
        userService.add();
    }

2.我想在每个方法前加一条日志功能。实现方法当然是可以在每个方法前写一句话,如果不想这样做呢?
   新写一个implements
   这就是静态代理。很显然,这并不便捷。于是有了动态代理。参看下篇。

public class UserServiceProxy implements UserService {

    private UserServiceImpl  userService;
    public void log(String msg)
    {
        System.out.println("使用"+msg);
    }

    @Override
    public void add() {
        log("add");
        userService.add();

    }

    @Override
    public void delete() {
        log("delete");
        userService.delete();

    }

    @Override
    public void update() {
        log("update");
        userService.update();

    }

    @Override
    public void query() {
        log("query");
        userService.query();

    }

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

猜你喜欢

转载自blog.csdn.net/aggie4628/article/details/107825461