java中SPI是什么意思

1、概念

JDK内置的服务提供发现机制。SPI是一种动态替换和发现的机制。比如有一个界面。如果你想在运行时动态添加,你只需要添加一个实现。我们经常遇到java.sql.Driver界面,其他不同的厂商可以对同一个界面做出不同的实现。mysql和postgresql为用户提供不同的实现,Java的SPI机制可以为某个界面找到服务。

2、实例

publicclassKryoSerializerimplementsObjectSerializer{

@Override
publicbyte[]serialize(Objectobj)throwsObjectSerializerException{
byte[]bytes;
ByteArrayOutputStreamoutputStream=newByteArrayOutputStream();
try{
//获取kryo对象
Kryokryo=newKryo();
Outputoutput=newOutput(outputStream);
kryo.writeObject(output,obj);
bytes=output.toBytes();
output.flush();
}catch(Exceptionex){
thrownewObjectSerializerException("kryoserializeerror"+ex.getMessage());
}finally{
try{
outputStream.flush();
outputStream.close();
}catch(IOExceptione){

}
}
returnbytes;
}

@Override
public<T>TdeSerialize(byte[]param,Class<T>clazz)throwsObjectSerializerException{
Tobject;
try(ByteArrayInputStreaminputStream=newByteArrayInputStream(param)){
Kryokryo=newKryo();
Inputinput=newInput(inputStream);
object=kryo.readObject(input,clazz);
input.close();
}catch(Exceptione){
thrownewObjectSerializerException("kryodeSerializeerror"+e.getMessage());
}
returnobject;
}

@Override
publicStringgetSchemeName(){
return"kryoSerializer";
}

}

以上就是java中SPI的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容