Score
0
Watch 782 Star 2.3K Fork 688

GVPfuhai / jbootJavaApache-2.0

Join us
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
SpringCloud 之外的另一个选择,已经使用在用户量过亿的商业产品上,有超过1000家公司在使用Jboot做极速开发... spread retract

Clone or download
spi.md 1.40 KB
Copy Edit Web IDE Raw Blame History
fuhai authored 2019-01-08 19:45 . update docs

SPI 扩展

目录

  • 描述
  • Jboot SPI 模块

描述

SPI 的全名为 : Service Provider Interface。

SPI 具体约定

当服务的提供者,提供了服务接口的一种实现之后,在 jar 包的META-INF/services/ 目录里同时创建一个以 服务接口 命名的文件。该文件里就是实现该服务接口的具体实现类。而 Jboot 装配这个模块的时候,就能通过该 jar 包 META-INF/services/ 里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。

Jboot SPI 模块

在jboot中,一下模块已经实现了SPI机制。

  • Jbootrpc
  • JbootHttp
  • JbootCache
  • Jbootmq
  • JbootSerializer

例如,在 JbootCache 中,内置了三种实现方案:ehcacheredisehredis。在配置文件中,我看可以通过 jboot.cache.type = ehcache 的方式来指定在 Jboot 应用中使用了什么样的缓存方案。

但是,在 Jboot 中,通过SPI机制,我们一样可以扩展出第4、第5甚至更多的缓存方案出来。

扩展步骤如下:

  • 1:编写JbootCache的子类
  • 2:通过 @JbootSpi 注解给刚刚编写的类设置上一个名字,例如:@JbootSpi("mycache")
  • 3:通过在jboot.properties文件中配置上类型为 mycache,配置代码如下:jboot.cache.type = mycache

通过以上三步,我们就可以完成了对 JbootCache 模块的扩展,其他模块类似。

Comment ( 0 )

Sign in for post a comment

Java
1
https://gitee.com/fuhai/jboot.git
git@gitee.com:fuhai/jboot.git
fuhai
jboot
jboot
master

Help Search