`

Java SPI介绍

 
阅读更多

一、SPI的全名为Service Provider Interface,是JDK内置的一种机制,是一种动态服务发现的机制。

基本思路是ServiceLoader负责读取写死路径下的配置然后将其中的类加载进行执行,当然这种服务面对的是接口层次。

基本代码层次如下:



 
core.spi.HelloInterface 内容:

core.impl.LiMingHello
core.impl.WangChaoHello

 Main 函数:

package core;

import java.util.ServiceLoader;

import core.spi.HelloInterface;
/**
 * SPI 服务
 *
 */
public class SPIMain {

	public static void main(String[] args) throws InterruptedException {

		
		while (true) {
			ServiceLoader<HelloInterface> loaders = ServiceLoader.load(HelloInterface.class);
			for (HelloInterface in : loaders) {
				in.sayHello();
			}
			Thread.sleep(2000);
		}
	}

}

 

其中有个死循环是为了测试其动态性,当其中删除一行实现只会输出其中一个实现类,说明其中实现类是动态加载。其中真正的使用场景可以参看dubblo源码。

 

分享到:
评论

相关推荐

    java spi实现工程

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许JVM在运行时动态加载服务提供商。这个机制使得开发者可以扩展应用的功能,而无需修改原有代码。SPI的核心概念在于,服务接口由主程序...

    java spi 可运行 demo

    Java SPI(Service Provider Interface)是Java标准库提供的一种服务发现机制,它允许程序在运行时动态地查找并加载实现特定接口的服务提供商。SPI的核心概念在于将服务接口与其实现类解耦,使得开发者可以在不修改...

    java SPI的jar包

    这个资源是我的博客《java SPI机制学习笔记》中的提供服务的jar包

    Java SPI Demo

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许JVM在运行时动态加载和使用服务提供商。这个机制使得开发者可以扩展应用程序的功能,而不需要修改应用程序的代码。在Java SPI中,...

    Java SPI 机制(SPI实战+ServiceLoader源码分析+SPI 应用场景+破坏双亲委派)

    Java SPI 机制详解 Java SPI 机制,全称 Service Provider Interface,是 Java 内置的服务发现机制。SPI 机制的主要思想是解耦,通过提供一个标准接口,允许第三方提供实现类,而无需在程序中硬编码。SPI 机制广泛...

    java对于MP3的spi

    Java平台扩展机制(Service Provider Interface, SPI)是一种允许第三方开发者扩展Java应用程序或库的功能的方式。在Java Sound API中,SPI扮演着关键角色,使得开发者能够添加对不同音频格式的支持,如MP3。MP3 SPI...

    spi-demo java spi小例子

    java spi简单参考,url:https://blog.csdn.net/a925907195/article/details/87088744 主类:testcase,代码很简单,只是自己写个demo看看运行原理

    java-mp3spi

    Java MP3SPI,全称Java Media Framework (JMF) MP3 Service Provider Interface,是一个用于在Java平台上处理MP3音频文件的扩展库。它基于Java Media Framework (JMF),提供了对MP3格式音频流的支持,使得Java开发者...

    java的spi测试

    Java的Service Provider Interface (SPI) 是一种用于在运行时动态发现和加载服务提供者实现的机制。这个功能在Java标准库中被广泛使用,允许开发者扩展JVM的功能,而无需修改核心API。在这个"java的spi测试"中,我们...

    java spi 学习记录

    描述中提到的链接指向了一篇特定的博客文章,虽然这里没有具体内容,但通常博客会详细介绍SPI的各个方面,包括其在Java中的位置(主要在`java.util.ServiceLoader`类中)、配置文件`META-INF/services`的使用,以及...

    java mp3spi jar

    java mp3spi jar java 处理mp3 jar 包

    JAVA SPI原理源码详细介绍,MD格式,有大纲目录

    JAVA SPI原理源码详细介绍,MD格式,有大纲目录

    java spi-demo示例

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许JVM在运行时动态加载和使用服务提供商。SPI机制使得开发者可以扩展程序的功能,而无需修改原代码,极大地提高了软件的可扩展性和模块...

    Java SPI的简单小实例

    Java SPI的简单小实例 Java SPI(Service Provider Interface)是一种Java标准机制,允许应用程序在运行时发现和加载服务提供者。Java SPI的主要思想是将服务接口和服务实现分离,使得服务实现可以独立于服务接口...

    java-spi学习例子

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许JVM在运行时动态加载服务实现。这个机制使得开发者可以扩展已存在的应用程序或库,而无需修改原代码。SPI的核心理念是将服务接口与其...

    java代码 干旱SPI逐日计算,基于mysql数据库

    在Java编程环境中,开发一个基于MySQL数据库的SPI计算系统,可以有效地处理和分析大量的气象数据。 首先,我们需要了解SPI计算的基本原理。SPI是通过对历史降水数据进行统计转换得出的,通常采用经验累积概率分布...

    Java类加载及SPI机制.pdf

    Java类加载机制和SPI(ServiceProviderInterface)机制是Java平台中极其重要的两个概念,它们对于Java程序的灵活性和可扩展性起到关键作用。下面详细解释这两个机制的概念、原理和应用场景。 类加载机制是Java...

    Java的Spi使用实例

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许JVM在运行时动态加载服务实现。这个机制使得开发者能够将核心功能模块化,然后由其他开发者提供不同的实现来扩展系统功能。SPI的核心...

    Java SPI机制详解.md

    Java SPI机制详解.md

    采用Java SPI和Spring factories来实现插件化的demo

    Java SPI(Service Provider Interface)是Java平台提供的一种服务发现机制,允许第三方开发者为Java应用程序提供扩展服务。Spring Factories则是Spring框架中用于自动配置和服务发现的一种机制,它基于类路径下的...

Global site tag (gtag.js) - Google Analytics