zoukankan      html  css  js  c++  java
  • 代理模式的进一步理解(动态代理)

    动态代理:(前提是要有接口)
    CGLIB实现的动态代理:不需要有接口
    
    
    业务层的动态代理实例:
    
    
    package 动态代理设计模式;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    
    public class ServiceProxy  implements InvocationHandler{
    
        private Object target ;//真实对象
        public Object bind(Object target){//返回代理对象
            this.target=target;//绑定真实对象
            return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(), this);
        }
        
        /**
         * 代理类代理真实主题的操作方法
         * @param proxy:代理类的对象
         * 需要真实主题对象来执行真实的主题任务
         */
        
        public void ready(){
            System.out.println("关闭自动提交事务");
        }
        public void commit(){
            System.out.println("提交事务");
        }
        public void rollback(){
            System.out.println("回滚事务");
        }
        public void close(){
            System.out.println("关闭数据库连接");
        }
        @Override
        public Object invoke(Object proxy, Method method, Object[] args)
                throws Throwable {
            Object result=null;
            if(method.getName().startsWith("do")){
                
                this.ready();
                try{
                    result=method.invoke(this.target, args);
                    this.commit();
                
                }catch(Exception e){
                    this.rollback();
                }finally{
                    this.close();
                }
                
            }else{
                result=method.invoke(this.target, args);
            }
            return result;//返回真实对象操作的结果
        }
    
        
    
    }
  • 相关阅读:
    Jquery实现Gridview全选功能
    SQL Server日期计算
    避免表格table被撑开变形的CSS代码实例
    oracle游标使用
    最短路径算法及应用
    Jquery实现GridView隔行变色,鼠标经过变色,单击或者选中变色
    【项目】项目109
    【项目】项目107
    【项目】项目111
    【项目】项目110
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7706122.html
Copyright © 2011-2022 走看看