以安全性检查为例子:
首先创业一个 业务类 实现该业务接口:
创建 代理类:
测试类
测试结果
--------安全检查!()----------
------------执行添加方法()-------------aaaaaaaaa
--------安全检查!()----------
----------------执行查询方法()-------------------
首先创业一个 业务类 实现该业务接口:
public class UserMangerImpl implements UserManager {
public void addUser(String name, String pws) {
System.out.println("------------执行添加方法()-------------"+name);
}
public void deleteUser(Integer id) {
System.out.println("--------------执行删除方法()-------------------");
}
public String finUserByid(Integer id) {
System.out.println("----------------执行查询方法()-------------------");
return null;
}
创建 代理类:
public class SecurityHandler implements InvocationHandler {
private Object targetObject; //目标对象
public Object newProxy(Object targetObject){
this.targetObject=targetObject;
return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),
targetObject.getClass().getInterfaces(),
this);
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
chickSecurity();
Object obj=null;
try{
obj=method.invoke(this.targetObject, args);
}catch(Exception e){
e.printStackTrace();
}
return obj;
}
public void chickSecurity(){
System.out.println("--------安全检查!()----------");
}
测试类
public static void main(String[] args) {
SecurityHandler hander=new SecurityHandler();
UserManager user=(UserManager) hander.newProxy(new UserMangerImpl());
user.addUser("aaaaaaaaa", "vvv");
user.finUserByid(1);
}
测试结果
--------安全检查!()----------
------------执行添加方法()-------------aaaaaaaaa
--------安全检查!()----------
----------------执行查询方法()-------------------