序列化的过程是将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>