zoukankan      html  css  js  c++  java
  • 模仿mybatis,用jdk proxy实现接口

    在mybatis中,我们都只需要定义一个mapper接口,但并不需要对它进行任务实现。只要有对就的mapper.xml文件就可以访问数据库。那么,没有接口的访问是如何实现的呢。

    答案就是JDK proxy.mybatis统一用代理类来写接口实现。在代理类中,实现读取配置文件并访问数据库存的操作。

    现在我们来模拟一下,如何用代理类实现接口

    1.定义接口,一个求各的方法

    public interface FacadeCalculate {
        int add(int a,int b);
    }

    2.定义一个handle类,继承InvocationHandler。在invoke方法中,返回两个参数相加的值。这里只是一个示例,并没有作验证和错误处理。

    public class TraceHandler implements InvocationHandler {
        @Autowired
        private Calculate calculate;
    
        /**
         * Constructs a TraceHandler
         */
        public TraceHandler() {
    
        }
    
        public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
            return Integer.parseInt(args[0].toString()) + Integer.parseInt(args[1].toString());
        }
    }

    3.调用 

     public static void main(String[] args)
        {
    
            InvocationHandler handler = new TraceHandler();
            FacadeCalculate proxy = (FacadeCalculate) Proxy.newProxyInstance(FacadeCalculate.class.getClassLoader(),
                    new Class[] { FacadeCalculate.class }, handler);
    
            Integer result= proxy.add(2,3);
            System.out.println(result);
    
        }

    输出值会是5.

    点我下载代码

  • 相关阅读:
    头部尾部始终处于两端(适用于pc端和移动端)
    运用active和hover实现导航栏的页面切换
    POJ1423-阶乘的位数-Big Number
    大数阶乘
    n皇后
    4103:踩方格
    2815:城堡问题
    特殊回文数
    十六进制转十进制
    十六进制转八进制
  • 原文地址:https://www.cnblogs.com/Gyoung/p/5273941.html
Copyright © 2011-2022 走看看