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