序列化的過程是將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>