# Java JNDI和SPI的实现
## 1. 简介
Java Naming and Directory Interface (JNDI) 是Java平台提供的一种标准的API,用于访问命名和目录服务。通过JNDI,开发者可以在运行时动态地查找和访问各种资源,如数据库连接、消息队列等。而Service Provider Interface (SPI) 是一种Java机制,允许开发者在不修改源            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-01 10:35:56
                            
                                178阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            JDK SPI JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展吃实话很耗时,但 也没用上,很浪费资源。 所以只希望加载某个的实现,就不现实了 DUBBO SPI 1,对 Dubbo 进行扩展,不需要改动 Dubbo 的源码 2,延迟加载,可以一次只加载自己想要加载的扩展实现。 3,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-06-26 13:06:00
                            
                                320阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            今天下午面试被问到这个问题,当时没答上来,毕竟之前工作也都只是简单的使用,并没有真正去了解过两个之间的区别晚上自己查了一些文档,有点感悟在这里写一下首先两个都是国内比较火的微服务架构先介绍一下微服务微服务架构是一种架构模式,它将单一应用程序划分成一组小的服务,服务之间互相配合,达到最终的目的优点是可以将繁杂的代码堆分解,每一个微服务实现单一的功能,并通过接口与其他服务沟通合作每个微服务之间相互独立            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-27 07:13:26
                            
                                15阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言1、目的了解javaSPI实现原理;了解Spring-boot实现原理;会使用两者;2、搜索关键词JDK和Spring中SPI的实现原理和区别JDK和Spring中SPI的实现原理和区别一、javaSPI1.1简介SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。底层通过反射实现。1.2实现原            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-09 12:20:36
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录SPI是什么?怎么用实现原理SPI是什么?SPI :全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services(META-INF.services无法识别)文件夹查找文件,自动加载文件里所定义的类。同Spring的IoC/DI类似。这一机制为很多框架扩展提供了可能,比如在Spring、JDBC、Dubb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-25 20:20:57
                            
                                0阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Java SPI(Service Provider Interface),是JDK提供的一套用来被第三方实现或者扩展的接口,通过java.util.ServiceLoader类加载META-INF/services/中的配置进行服务发现,可以用来启用框架扩展和替换组件。主要好处在于解耦,可拔插,面向接口编程,本质是基于接口的编程+策略模式+约定配置文件组合实现的动态加载机制。 这种思想被广泛的应用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-06 10:02:43
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 理解 Dubbo 的 SPI 和 Java 的 SPI
在 Java 开发中,服务提供者接口(Service Provider Interface, SPI)是一种设计模式,它允许应用程序在运行时选择实现。这种模式在许多框架中都有广泛应用,包括 Apache Dubbo。虽然 Java 内置的 SPI 和 Dubbo 的 SPI 实现各有特点,但它们的基本流程是相似的。在本文中,我们将讨论这            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-09 03:29:01
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录何谓 SPI?Java SPI 的应用DemoSPI 使用场景SPI 和 API 在使用上的区别?SPI 和 API 在本质上的区别SPI 源码分析1、SPI的核心就是ServiceLoader.load()方法2、ServiceLoader核心代码介绍SPI 的优缺点?何谓 SPI?SPI 即 Service Provider Interface ,字面意思就是:“服务提供者的接口”,一般理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-20 10:15:16
                            
                                13阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            大家好,我是三友~~今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是简单地介绍了一下Java、Spring的SPI机制,并没有进行深入,所以本篇就来深入聊一聊这三者的原理和区别。什么是SPI SPI全称为Service Provider Interface,是一种动态替换发现的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-16 21:11:55
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Netweaver里使用事务码SM59创建Destination:
Java
新建一个destination:
测试代码:
try {
            Context ctx = new InitialContext();
            ConnectivityConfiguration configuration = (ConnectivityConfiguratio            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-14 17:15:36
                            
                                124阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Netweaver里使用事务码SM59创建Destination: Java 新建一个destination: 测试代码: 通过JNDI获得destination配置的url: 要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-10-22 10:00:52
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. spi 是什么SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了开闭原则,Java SPI就是为某个接口寻找服务实现的机制,Ja            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-13 20:11:32
                            
                                14阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            JDK SPI 机制原理分析最近开始看 Dubbo 源码, 而 Dubbo 的一大优秀设计就是 Dubbo SPI 机制, 而 Dubbo 的 SPI 是对 JDK 的 SPI 的增强, 所以先对 JDK SPI 机制 准备做一个分析.同时也建议大家多读优秀框架的源码.1 SPI 简介1.1 什么是 SPI SPI全称 Service Provider Interface ,是Java提供的一套用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-10 14:18:06
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Apache 已经宣布Dubbo成为顶级的项目了,今天在看dubbo的源码导读.看到有个SPI,就了解一下了.发现是一种接口和实现分开的解耦方式,挺有意思的. 这篇文章的总结就是:把接口的具体实现类的全名写成配置文件,然后进行读取,生成具体的实现类对象,进行方法的调用,从而实现解耦合.就这么简单.不想看全文的可以撤了,哈哈哈 1 SPI是什么SPI全称Service Provi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 19:50:58
                            
                                83阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            利用 JNDI JNDI 提供了一套标准的接口来定位资源 ( 用户、网络、机器、对象和服务等 ) ,比如可以利用 JNDI 在局域网上定位一台打印机,也可以用 JNDI 来定位数据库服务或一个远程 Java 对象。 JNDI 在 Java EE 中使用十分广泛;包括 EJB 、 RMI-IIOP 、 JDBC 和 JMS命名和给人取名字道理是一样的,名字是一个指向实际客体的引用,名字方便了我们指称            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-09 12:31:08
                            
                                123阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.什么是SPI动态服务发现机制。它的主要实现是"基于接口的编程+策略模式+配置文件"组合实现的动态加载机制。Java SPI机制,图解如下:2.SPI机制设计思想              系统设计的各个抽象,往往有很多不同的实现方案,在面向对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-12 16:57:35
                            
                                49阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、RMI概述 java RMI(remote method invocation)即远程方法调用,是允许运行在一个java虚拟机上的对象调用运行在另外一个java虚拟机上的对象的方法,JAVA RMI实现JAVA程序之间跨越JVM的远程通信。通过RMI可以让调用远程JVM上对象方法,仿佛调用本地J ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-15 17:34:00
                            
                                349阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            一、RMI概述 java RMI(remote method invocation)即远程方法调用,是允许运行在一个java虚拟机上的对象调用运行在另外一个java虚拟机上的对象的方法,JAVA RMI实现JAVA程序之间跨越JVM的远程通信。通过RMI可以让调用远程JVM上对象方法,仿佛调用本地J ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-15 17:34:00
                            
                                210阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Springboot SpringBoot是Spring和SpringMVC的整合升级体,利用注解来完成Spring和SpringMVC的大部分配置,省略了大量配置文件代码。 SpringBoot自带tomcat组件,因此这个功能可省略 使用 Spring Boot 有什么好处 回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要: 1)配置 web.xml,加载 spring 和 spri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 13:00:03
                            
                                8阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            关于SPI的一些笔记            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-01-28 06:18:18
                            
                                127阅读
                            
                                                                             
                 
                
                                
                    