网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Java中的SPI原理浅谈

  在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违反了程序设计的"开闭原则"。所以我们一般有两种选择:一种是使用API(Application Programming Interface),另一种是SPI(Service Provider Interface),API通常被应用程序开发人员使用,而SPI通常被框架扩展人员使用。

创新互联建站专业为企业提供北海网站建设、北海做网站、北海网站设计、北海网站制作等企业网站建设、网页设计与制作、北海企业网站模板建站服务,10多年北海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

  在进入下面学习之前,我们先来再加深一下API和SPI这两个的印象:

  API:由实现方制定接口标准并完成对接口的不同实现,这种模式服务接口从概念上更接近于实现方;

  SPI:由调用方制定接口标准,实现方来针对接口提供不同的实现;从前半句话我们来看,SPI其实就是"为接口查找实现"的一种服务发现机制;这种模式,服务接口组织上位于调用方所在的包中,实现位于独立的包中。

  API和SPI简略图示:

  

  看完上面的简单图示,相信大家对API和SPI的区别有了一个大致的了解,现在我们使用SPI机制来实现我们一个简单的日志框架:

  第一步,创建一个maven项目命名为spi-interface,定义一个SPI对外服务接口,用来后续提供给调用者使用;

package cn.com.wwh;
/**
 * 
 * @FileName Logger.java
 *@version:1.0
 * @Description: 服务提供者接口
 *@author: wwh
 * @date: 2022年9月19日 上午10:31:53
*/
public interface Logger {
    
/**
     * 
     * @Description:(功能描述)
     *@param msg
*/
    public void info(String msg);
    
/**
     * 
     * @Description:(功能描述)
     *@param msg
*/
    public void debug(String msg);
}

分享文章:Java中的SPI原理浅谈
当前地址:http://bjjierui.cn/article/dscgigd.html

其他资讯