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.

    点我下载代码

  • 相关阅读:
    学单词的一点方法
    CSS布局标准
    前端开发知识之前端移动端适配总结
    用PS制作APP的界面图片
    Hadoop读写过程
    hadoop伪分布式搭建
    centos6.5安装vmware tools&共享文件夹显示
    02-虚拟机克隆配置
    SpringBootの使用Swagger2
    idea快捷键
  • 原文地址:https://www.cnblogs.com/Gyoung/p/5273941.html
Copyright © 2011-2022 走看看