Java的Service Provider Interface(SPI)

来源:互联网 发布:阿里云售后服务电话 编辑:程序博客网 时间:2024/05/16 04:53

SPI是Java 1.5新添加的一个内置标准,允许不同的开发者去实现某个特定的服务。

一个​Service就是一套著名的接口或抽象类,而Service Provider是这个Service的一个特定实现类。Service Provider按Service接口分类,同一个Service只能有一个实现类被注册。因为在实际中,Service都是单例的。如果同时注册了多了,后面的Service Provider将覆盖前面注册的Service Provider。

声明一个service provider需要在JAR包的META-INF目录下创建一个service子目录,并且为每一个service provider提供一个以Service全名命名的文件。假如JAR包有一个类com.mycompany.mypkg.MyServiceImpl实现了javax.someapi.SomeService接口,JAR包中应该包含一个文件:

META-INF/services/javax.someapi.SomeService
这个文件中包含一行:

com.mycompany.mypkg.MyService

0 0
原创粉丝点击