最新文章列表

Java SPI机制简介

Java SPI机制简介            SPI是Service Provider Interfaces的简称。根据Java的SPI规范,我们可以定义一个服务接口,具体的实现由对应的实现者去提供,即Service Provider(服务提供者)。然后在使用的时候只要根据SPI的规范去获取对应的服务提供者的服务实现即可。为了便于理解,我们先来看一个使用SPI的示例。          ...
234390216 评论(0) 有12551人浏览 2016-10-09 10:37

ServiceLoader服务提供者加载设施帮助类

ServiceLoader是jdk提供的一个简单的服务提供者加载设施,一个服务(接口)的实现者在其资源目录META-INF/services 中放置提供者配置文件 来标识服务提供者。 文件名称是服务类型的完全限定名称。该文件包含一个具体提供者类的完全限定名称列表,每行一个。 通过ServiceLoader.load创建服务实现者加载器,通过iterator以延迟方式加载此加载器服务的可用提供者 ...
wydyyhwzx 评论(0) 有356人浏览 2016-05-26 10:29

SPI入门级Demo(五:服务消费者)

前面已经定义好了服务的契约接口以及服务的实现者(加法服务、乘法服务), 本文将开发一个服务消费者,所谓的消费者即消费服务,通过引入相应服务的jar包来自动消费相应的服务。   首先同样新建一个Java工程spi-consumer, 新建服务消费类com.fanyc.test.spi.consumer.Consumer,并添加可执行的main方法。 由于是服务消费者,必须要知道要消费的服 ...
Fanyucai 评论(0) 有949人浏览 2015-04-15 22:56

SPI入门级Demo(四:服务实现者-乘法服务)

本文将实现依据契约接口完成乘法法服务的实现。   做法跟前一篇 SPI入门级Demo(三:服务实现者-加法服务) 相同,直接贴出代码 PS:至于减法和除法可自行实现   package com.fanyc.test.spi.provider; import com.fanyc.test.spi.intface.Computer; /** * 服务实现者:乘法运算 * ...
Fanyucai 评论(0) 有834人浏览 2015-04-15 22:29

SPI入门级Demo(三:服务实现者-加法服务)

本文将实现依据契约接口完成加法服务的实现。   服务的实现是需要依赖契约接口的定义的,所以需要引入接口定义jar包。   新建Java工程spi-provider-add,引入spi-intface.jar。 新建com.fanyc.test.spi.provider.Add类,实现com.fanyc.test.spi.intface.Computer接口, 实现体中完成了的a和b的 ...
Fanyucai 评论(0) 有990人浏览 2015-04-15 22:18

SPI入门级Demo(二:契约即接口定义)

本文将介绍SPI中最重要的契约即接口定义。新建Java工程spi-intface,然后新建一个接口类,如下所示: package com.fanyc.test.spi.intface; /** * 定义契约类 * * @author Fanyc * */ public interface Computer { /** * 定义计算方法 * ...
Fanyucai 评论(0) 有882人浏览 2015-04-15 22:02

SPI入门级Demo(一:初识)

最近在学习软件架构以及SOA等相关知识,在学习Dubbo的时候发现SPI这个东东,就上网百度来学习一下。   SPI的全名为Service Provider Interface。   我理解的SPI就是调用者只要说明调用什么接口的什么方法即可,无需知道具体的 实现者代码,也无需在代码中实现进行关联引用。这样就将调用方和实现方进行分离, 只要共通遵循接口协议就可以了。   具体SP ...
Fanyucai 评论(0) 有1057人浏览 2015-03-13 15:08

ServiceLoader

基本概念                           服务:一个熟知的接口和类(通常为抽象类)集合。 服务提供者:服务的特定实现。 ServiceLoader   ...
evans_he 评论(0) 有729人浏览 2014-04-01 00:00

ServiceLoader的使用

    发现ServiceLoader是个类似spring的东西,可以指定接口和实现,通过ServiceLoader去载入。 下面是我的一个例子: package com.test2; import java.util.ServiceLoader; import com.test.IHello; public class Main { public static void main ...
huangyunbin 评论(6) 有12084人浏览 2013-06-06 11:30

java.util.ServiceLoader demo

首先引用API中的说明文档:   一个简单的服务提供者加载设施。   服务 是一个熟知的接口和类(通常为抽象类)集合。服务提供者 是服务的 ...
wen866595 评论(0) 有2843人浏览 2012-05-25 16:45

java spi机制

    SPI的全名为Serivce Provider Interface。普通的开发人员可能不太了解,这个针对厂商或者插件开发的。在java.util.ServiceLoader的文档里面有比较详细的介绍。它的主要思想和callback差不多。‘Callback’的思想是在我们调用API的时候,我们可以自己写一段逻辑代码传入到API中,API内部在合适的时候会调用它,从而实现某种程度的“定制”。 ...
MarvinIBM 评论(0) 有1268人浏览 2011-12-20 15:16

最近博客热门TAG

Java(141744) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54919) .net(54785) Web(54514) 工作(54118) Linux(50905) Oracle(49875) 应用服务器(43289) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37267) 数据结构(36424)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics