JAVA SPI的一段话总结,助力彻底理解其使用场景

关于JAVA 的SP I 想必大家都有所耳闻、知道其提供的功能以及使用方式。
但到底如何理解它,以及它面向哪种场景来用的,这些话题是本篇文章的核心。

一句话理解:SPI是当我们身为框架开发者时候,在你无法形成绝对规范、强制使用者按照规范去使用的的时候,"放权" 往往是比较明智的选择,适当让使用者去自定义实现。
例子:公司让你写一个对象存储的服务组件,然后下放给其他业务部门使用。你努努力,实现了阿里云OSS,腾讯COS、华为对象存储等实现,供业务部门使用。这时候A部门跳出来说,他们用的七牛的kodo;B部门说,他们用的HDFS,这时候你咋办?你接着自己去增加这些实现吗?不现实,量太大了。这时候,最好的方式就是,提供一个口子,供使用者按自己的需求,自己去实现。

这个时候SPI就发挥作用了。
SPI的功能以及使用方式,可以支持公司部门内部,引入你的组件后,在不用更改你组件源码的前提下,面向SPI接口,在他们自己的业务项目内部去自己增加实现。
问题完美解决。

你可能感兴趣的:(JAVA SPI的一段话总结,助力彻底理解其使用场景)