我是靠谱客的博主 糊涂小熊猫,最近开发中收集的这篇文章主要介绍JAVA自带插件机制JAVA 插件机制 - java SPI,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JAVA 插件机制 - java SPI

java 官方提供自己的插件机制 【点击进入官方插件机制文档】本文内容是对官方文档的理解加实践。

文章目录

  • JAVA 插件机制 - java SPI
    • 实现java SPI大约需要三个步骤
      • 定义插件接口
      • 编写插件
      • 加载插件

实现java SPI大约需要三个步骤

定义插件接口

实现Spi 首先要定义一个SPI接口,以后的拓展插件都需要实现这个接口

个人理解:设计模式的六大原则之一: 依赖倒置原则

  1. 上层模块不应该依赖底层模块,它们都应该依赖于抽象。

  2. 抽象不应该依赖于细节,细节应该依赖于抽象。

既然是插件当然是不能依赖于细节,要依赖于抽象接口,因此必须定义一个接口

eg:

package test.api;

public interface MyApi {
    void myTestFunction();
}

编写插件

新起一个插件项目,然后导入之前定义的接口的依赖,编写插件的实现

package test;

import test.api.MyApi;

public class MyTest implements MyApi {
    @Override
    public void myTestFunction() {
        System.out.println("this is  MyTest");
    }
}

编写插件的项目里必须在 META-INF目录下建立 services 目录,然后在目录下新建文件 文件名为接口全名比如我的接口名称:test.api.MyApi,然后在文件里面编写自己实现类的类全名,比如我的:test.MyTest

加载插件

java 自带的SPI加载插件当然是用java原生的方式:ServiceLoader
eg:


public class Main {
    public static void main(String[] args) throws Exception{
        ServiceLoader<MyApi> load = ServiceLoader.load(MyApi.class);

        for (MyApi myApi: load){
            myApi.myTestFunction();
        }
    }
}

加载到插件之后就可以直接使用

最后

以上就是糊涂小熊猫为你收集整理的JAVA自带插件机制JAVA 插件机制 - java SPI的全部内容,希望文章能够帮你解决JAVA自带插件机制JAVA 插件机制 - java SPI所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部