`

API和SPI

阅读更多
API的意义,其实就是提供给你完成某些功能的类、接口或方法
SPI(service provider interface)是指提供给你继承、扩展完成某些特定功能的类、接口或方法。
API直接为你提供了功能,你使用API就能完成任务。
SPI是一种回调的思想,回调是指我们在使用api时,我们可以向api传入一个类或者方法,api在合适的时间调用类或者方法。SPI是在一些通用的标准中,为标准的实现产商提供的扩展点。标准在上层提供API,API内部使用了SPI,当API被客户使用时,会动态得从当前运行的classpath中寻找该SPI的实现,然后使用该SPI的实现来完成API的功能。
  SPI的实现方式是:提供实现的实现类打包成Jar文件,这个Jar文件里面必须有META-INF目录,其下又有services目录,其下有一个文本文件,文件名即为SPI接口的全名,文件的内容该jar包中提供的SPI接口的实现类名
demo:
mysql的驱动包提供了java.sql.Driver这个SPI的实现,实现类是com.mysql.jdbc.Driver,在mysql-connector-java-5.1.6.jar中,我们可以看到有一个META-INF/services目录,目录下有一个文件名为java.sql.Driver的文件,其中的内容是com.mysql.jdbc.Driver。
在运行DriverManager.getDriver并传入参数“com.mysql.jdbc.Driver”时,DriverManager会从mysql-connector-java-5.1.6.jar中找到com.mysql.jdbc.Driver并实例化返回一个com.mysql.jdbc.Driver的实例。
分享到:
评论

相关推荐

    GPIO模拟SPI,gpio模拟spi 四种模式,C,C++

    标题中的“GPIO模拟SPI”指的是使用微控制器(如STM32)上的通用输入/输出(GPIO)引脚来模拟SPI(串行外围接口...通过深入理解SPI协议和STM32的GPIO特性,我们可以用软件实现高效的SPI通信,灵活应对不同的应用场景。

    eeprom_api.zip_PIC24_PIC24 SPI 程序_PIC24 spi_eeprom API_spi eepro

    4. **SPI EEPROM API**:此API(Application Programming Interface)是一组预定义的函数和数据结构,允许用户通过编程方式与SPI接口的EEPROM进行交互,如读取、写入和擦除操作。API通常包括初始化、传输命令、读写...

    wspi.rar_api spi_spi write

    在标签中,“api_spi”和“spi_write”进一步确认了我们的关注点在于SPI接口的编程API以及写入操作。 压缩包内的文件“wspi.c”和“wspi.h”很可能是实现或声明这些功能的源代码和头文件。`wspi.c`可能包含了SPI...

    xfsv3-part01-api-spi.rar_XFS_xfsv3-part01-api-spi

    金融服务扩展(XFS)接口说明(3.10版)第一部分:应用程序编程接口(API)- 服务提供程序接口(SPI);程序员参考

    wosa_xfs实例(从SPI到API)

    在IT行业中,尤其是在嵌入式系统和设备驱动开发领域,理解和掌握SPI(Serial Peripheral Interface)协议以及如何将其与高层API(Application Programming Interface)交互至关重要。本文将通过一个名为“wosa_xfs”...

    JAVA API Design

    - **避免混合API和SPI**:服务提供者接口(SPI)和API应分开,以保持接口的清晰。 - **发布后不应更改包名**:一旦公开发布API,其包名就不能更改或移动,以免破坏兼容性。 2. **命名规范**: - **避免使用特定...

    springfox-spi-2.7.0-API文档-中文版.zip

    赠送原API文档:springfox-spi-2.7.0-javadoc.jar; 赠送源代码:springfox-spi-2.7.0-sources.jar; 赠送Maven依赖信息文件:springfox-spi-2.7.0.pom; 包含翻译后的API文档:springfox-spi-2.7.0-javadoc-API文档...

    CEN/XFS协议第一部分

    文档的后续章节详细列出了XFS系统中使用的API函数和SPI函数,这些函数覆盖了各种应用场景,包括但不限于账户查询、交易处理、设备状态监控等。 - **API函数**: 包括基本函数、管理函数和特殊函数等。 - **SPI函数**...

    springfox-spi-2.2.2-API文档-中文版.zip

    赠送原API文档:springfox-spi-2.2.2-javadoc.jar; 赠送源代码:springfox-spi-2.2.2-sources.jar; 赠送Maven依赖信息文件:springfox-spi-2.2.2.pom; 包含翻译后的API文档:springfox-spi-2.2.2-javadoc-API文档...

    springfox-spi-2.4.0-API文档-中文版.zip

    赠送原API文档:springfox-spi-2.4.0-javadoc.jar; 赠送源代码:springfox-spi-2.4.0-sources.jar; 包含翻译后的API文档:springfox-spi-2.4.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:io....

    springfox-spi-2.4.0-API文档-中英对照版.zip

    赠送原API文档:springfox-spi-2.4.0-javadoc.jar 赠送源代码:springfox-spi-2.4.0-sources.jar 包含翻译后的API文档:springfox-spi-2.4.0-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId...

    springfox-spi-2.9.2-API文档-中文版.zip

    赠送原API文档:springfox-spi-2.9.2-javadoc.jar; 赠送源代码:springfox-spi-2.9.2-sources.jar; 赠送Maven依赖信息文件:springfox-spi-2.9.2.pom; 包含翻译后的API文档:springfox-spi-2.9.2-javadoc-API文档...

    ch341读写spi flash源代码_341读写spiflash_ch341读写spiflash源代码_Vc_

    SPI(Serial Peripheral Interface)闪存是一种常见的存储设备,常用于微控制器和其他嵌入式系统中。在本案例中,"ch341读写spi flash源代码"涉及到的是使用CH341芯片来与SPI Flash进行通信的VC(Visual C++)编程...

    springfox-spi-3.0.0-API文档-中文版.zip

    赠送原API文档:springfox-spi-3.0.0-javadoc.jar; 赠送源代码:springfox-spi-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-spi-3.0.0.pom; 包含翻译后的API文档:springfox-spi-3.0.0-javadoc-API文档...

    springfox-spi-2.7.0-API文档-中英对照版.zip

    赠送原API文档:springfox-spi-2.7.0-javadoc.jar; 赠送源代码:springfox-spi-2.7.0-sources.jar; 赠送Maven依赖信息文件:springfox-spi-2.7.0.pom; 包含翻译后的API文档:springfox-spi-2.7.0-javadoc-API文档...

    wosa标准规范从API-SPI全英文(含大部分)

    CWA16374系列文件是CEN对于WOSA标准的具体实施指南,包括了API(Application Programming Interface)和SPI(Service Provider Interface)两个关键部分。API通常是指软件系统中供开发者使用的接口,它定义了如何与...

    springfox-spi-3.0.0-API文档-中英对照版.zip

    赠送原API文档:springfox-spi-3.0.0-javadoc.jar; 赠送源代码:springfox-spi-3.0.0-sources.jar; 赠送Maven依赖信息文件:springfox-spi-3.0.0.pom; 包含翻译后的API文档:springfox-spi-3.0.0-javadoc-API文档...

    linux 下标准spi操作程序

    `imx6ull_mtd_block_api.c`和`imx6ull_mtd_flash_api.c`可能是实现SPI Flash操作的具体函数库,包含了读取、写入和擦除等基本操作。`imx6ull_mtd_block_api.h`和`imx6ull_mtd_flash_api.h`是对应的头文件,它们定义...

    spi flash spi oled

    例如,对于Arduino平台,有像Adafruit_SSD1306这样的库,提供了易于使用的API来控制SPI OLED。对于SPI Flash,可能有Microchip的SPI Flash库或STM32 HAL库等,这些库封装了底层的SPI通信,让开发者可以方便地读写SPI...

    合作式智能运输系统车用通信系统应用层及应用层数据交互标准.pdf

    API和SPI接口则负责应用数据的编解码和交互控制。 在标准中,我们提出了一个"应用数据交换服务(ADS)层"的概念,它是应用层的一部分,并为应用层构筑了一个基礎平台,负责应用数据的编解码和交互控制。ADS层的存在...

Global site tag (gtag.js) - Google Analytics