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接口,每个厂商提供自己的实现。

  • 相关阅读:
    crontab 启动supervisor爬虫
    frida初体验
    Protobuf 的数据反解析
    adb
    突破SSL Pinning抓app的数据包
    Charles下载与配置
    替换小技巧
    docker 使用
    pandas读取excel
    docker 安装
  • 原文地址:https://www.cnblogs.com/zhi-leaf/p/10467894.html
Copyright © 2011-2022 走看看