序列化的过程是将Java对象转成byte数组在网络中传输,反序列化会将byte数组转成Java对象。
简介
序列化的选择需要考虑兼容性,性能等因素,HSF的序列化方式支持java、hessian2,默认是hessian2。序列化方式的对比和配置(只在服务端配置HSFApiProviderBean)如下表所示。
序列化方式 | Maven依赖 | 配置 | 兼容性 | 性能 |
---|---|---|---|---|
hessian2 | <artifactId>hsf-io-serialize-hessian2</artifactId> | setPreferSerializeType("hessian2") | 好 | 好 |
java | <artifactId>hsf-io-serialize-java</artifactId> | setPreferSerializeType("java") | 佳 | 一般 |
前提条件
在开发应用前,您已经完成以下工作:
API形式配置HSF服务
HSFApiProviderBean hsfApiProviderBean = new HSFApiProviderBean();
hsfApiProviderBean.setPreferSerializeType("hessian2");
Spring配置HSF服务
Spring框架是在应用中广泛使用的组件,如果不想通过API的形式配置HSF服务,可以使用Spring XML的形式进行配置,上述例子中的API配置等同于如下XML配置。
<bean class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">
<!--[设置] 发布服务的接口 -->
<property name="serviceInterface" value="com.alibaba.middleware.hsf.guide.api.service.OrderService"/>
<!--[设置] 服务的实现对象target必须配置 [ref],为需要发布为HSF服务的spring bean id-->
<property name="target" ref="引用的BeanId"/>
<!--[设置] 服务的版本 -->
<property name="serviceVersion" value="1.0.0"/>
<!--[设置] 服务的归组 -->
<property name="serviceGroup" value="HSF"/>
<!--[设置] 服务的响应时间 -->
<property name="clientTimeout" value="3000"/>
<!--[设置] 服务传输业务对象时的序列化类型 -->
<property name="preferSerializeType" value="hessian2"/>
</bean>