您现在的位置是:课程教程文章
java中SPI是什么意思
2023-12-14 21:52课程教程文章 人已围观
-
Application of TI Nspire on Algebra and Calculus
Application of TI Nspire on Algebra and Calculus国际课程校际精品课:Application of TI Nspire on Algebra and Calculus 为让更多的学生有... -
Java项目案例之我的JavaQQ聊天工具【凯哥学
Java项目案例之我的JavaQQ聊天工具【凯哥学... -
对标大厂的微服务分布式高并发Java系列课
对标大厂的微服务分布式高并发Java系列课... -
Java Servlet入门教程(JavaWeb)
Java Servlet入门教程(JavaWeb)【下面二维码是最近1-2年原创毕设作品】 直接扫描二维码,查看毕业设计作品...
1、概念
JDK内置的服务提供发现机制。SPI是一种动态替换和发现的机制。比如有一个界面。如果你想在运行时动态添加,你只需要添加一个实现。我们经常遇到java.sql.Driver界面,其他不同的厂商可以对同一个界面做出不同的实现。mysql和postgresql为用户提供不同的实现,Java的SPI机制可以为某个界面找到服务。
2、实例
public class KryoSerializer implements ObjectSerializer { @Override public byte[] serialize(Object obj) throws ObjectSerializerException { byte[] bytes; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { //获取kryo对象 Kryo kryo = new Kryo(); Output output = new Output(outputStream); kryo.writeObject(output, obj); bytes = output.toBytes(); output.flush(); } catch (Exception ex) { throw new ObjectSerializerException("kryo serialize error" + ex.getMessage()); } finally { try { outputStream.flush(); outputStream.close(); } catch (IOException e) { } } return bytes; } @Override public <T> T deSerialize(byte[] param, Class<T> clazz) throws ObjectSerializerException { T object; try (ByteArrayInputStream inputStream = new ByteArrayInputStream(param)) { Kryo kryo = new Kryo(); Input input = new Input(inputStream); object = kryo.readObject(input, clazz); input.close(); } catch (Exception e) { throw new ObjectSerializerException("kryo deSerialize error" + e.getMessage()); } return object; } @Override public String getSchemeName() { return "kryoSerializer"; } }
以上就是java中SPI的介绍,希望对大家有所帮助。更多Java学习指路:Java基础
本教程操作环境:windows7系统、java10版,DELL G3电脑。
课程教程:java中SPI是什么意思上一篇:java中的嵌套类是什么
下一篇:没有了