Java的SPI机制简述

前言


在翻看一些框架代码的时候,能看到一些框架处理时对于类的实例化并没有直接new一个对象,而是采用了SPI机制,为了便于看源码,也为了以后对自己写代码进行优化,因此需要学习一下
 

SPI


SPI全称Service Provider Interface,翻译过来是服务提供接口。它是jdk内置的一种服务发现机制,它可以让服务定义与实现分离、解耦,能够提高程序的扩展性
Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制,提供了通过interface寻找implement的方法

SPI的使用还算简单

1.先定义一个接口

public interface SpiTest {
   

    void someTest();

}

2.在/resources/META-INF/services目录下以接口的全路径创建一个文件
SPI文件
3.定义一个SpiTest接口的实现类

public class SpiTestImpl implements SpiTest {
   

    public SpiTestImpl() {
   
        System.out.println("I'm initialized!");
    }

    @Override
    public void someTest() {
   
        System.out.println("I'm SPI test, I'm ok!");
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值