zoukankan      html  css  js  c++  java
  • JAVA的SPI简单应用

    最近在研究dubbo时,发现了JAVA的SPI特性。SPI的全名为Service Provider Interface,是JDK内置的一种服务发现机制。

    具体实现:

    1、定义一个接口

    public interface IShape {
        /**
         * 渲染
         */
        void render();
    }

    2、添加几种实现

    public class CircularShape implements IShape {
    
        @Override
        public void render() {
            System.out.println(this.getClass().getName() + "正在绘制圆形");
        }
    }
    public class SquareShape implements IShape {
    
        @Override
        public void render() {
            System.out.println(this.getClass().getName() + "正在绘制正方形");
        }
    }

    3、在META-INF/services/com.zhi.demo.IShape文件添加信息

    com.zhi.demo.impl.SquareShape
    com.zhi.demo.impl.CircularShape

    4、测试

    public class SpiTest {
        public static void main(String[] args) {
            ServiceLoader<IShape> loaders = ServiceLoader.load(IShape.class);
            for (IShape shape : loaders) {
                shape.render();
            }
        }
    }

    5、运行结果

    com.zhi.demo.impl.SquareShape正在绘制正方形
    com.zhi.demo.impl.CircularShape正在绘制圆形

    代码结构图如下

    6、实际应用,sum为各大数据厂商提供了java.sql.Driver接口,每个厂商提供自己的实现。

  • 相关阅读:
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    预习非数值数据的编码方式
    计算机组成与系统结构作业01
    C语言||作业01
  • 原文地址:https://www.cnblogs.com/zhi-leaf/p/10467894.html
Copyright © 2011-2022 走看看