静态代理
静态代理就是对象通过代理对象去调用方法,实现不改变原有代码的情况下,增强原方法的功能,比如给原方法加日志,加事务等功能
第一步:新建一个service 接口
package service; public interface UserService { public void add(); public void del(); public void query(); public void update(); }
第二步:新建service 的实现类
package service.impl; import service.UserService; public class UserServiceImp implements UserService { public void add() { System.out.println("add"); } public void del() { System.out.println("del"); } public void query() { System.out.println("query"); } public void update() { System.out.println("update"); } }
第三步:新建静态代理类
package service.impl; import service.UserService; public class UserServiceProxy implements UserService { private UserService userServiceImp; //让这个静态类拥有UserService这个属性,并且有set方法 public void setUserServiceImp(UserService userServiceImp) { this.userServiceImp = userServiceImp; } //进行静态加强 public void add() { log("add"); userServiceImp.add(); } public void del() { log("del"); userServiceImp.del(); } public void query() { log("query"); userServiceImp.query(); } public void update() { log("update"); userServiceImp.update(); } //进行静态加强 public void log(String message){ System.out.println("这是:"+message+"方法"); } }
第四步:测试
package test; import service.UserService; import service.impl.UserServiceImp; import service.impl.UserServiceProxy; public class Mytest { public static void main(String[] args) { //新建被代理类 UserService userService=new UserServiceImp(); //新建代理类 UserServiceProxy userServiceProxy= new UserServiceProxy(); //让代理类去代理被代理类 userServiceProxy.setUserServiceImp( userService); //直接用代理类来调用方法 userServiceProxy.add(); } }

浙公网安备 33010602011771号