# java-spi **Repository Path**: trignit/java-spi ## Basic Information - **Project Name**: java-spi - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java SPI(Service Provider Interface)机制 SPI是JDK内置的一种服务提供发现机制,很多框架都使用了java的SPI机制,如java.sql.Driver的SPI实现(mysql驱动、oracle驱动等)、common-logging的日志接口实现、dubbo的扩展实现等等框架。 SPI机制的约定: 1. 在META-INF/services/目录中创建以接口全限定名命名的文件该文件内容为Api具体实现类的全限定名 2. 使用ServiceLoader类动态加载META-INF中的实现类 3. 如SPI的实现类为Jar则需要放在主程序classPath中 4. Api具体实现类必须有一个不带参数的构造方法