批改phprpc源码以支持集合类的string类型的转换
修改phprpc源码以支持集合类的string类型的转换
就remoting协议而言,用得比较多的是hessian与phprpc,但phprpc的转化效率比hessian高很多。以下链接是牛人对此两者的序列化/反序列化效率作出的比较:
http://www.iteye.com/topic/333720
我因为开发的需要,对两者能支持的数据类型也进行了一些测试和比较,总结如下:
hessian
1.不支持集合内含有char数组;
2.除1外,完美支持各种集合、元素类型的解析转换;
phprpc
1.不支持集合内value为string类型的值,需由客户自己转换,代码如:new String((byte[])test.getMap().get("1"),"utf-8")
2.集合内除byte[]外,不支持其它数组,如int[]、float[]、char[]等
乍一看觉得用hessian就够了,虽然hessian对集合内的char数组不支持转换,但是由于在实际运用中使用机率较低。但是眼看着效率高hessian N倍的phprpc不用怪蛋痛,于是着手研究代码,企图从源码解决这个不支持集合内value为string类型值的问题。
其实问题原因在于PHPRPC在反序列化(unserialize)过程,无法正确识别集合中子元素的字符串类型。而PHPRPC中,负责序列化与反序列化过程的类为PHPSerializer.java。所以定位好问题后就不难解决了。此处省略N千字,其实也就是添加一行代码的问题,却耗尽了一整个下午的精力。以下是编译好了的spring2.5需要用到phprpc的三个jar 文件,分别是:phprpc_client.jar phprpc_spring.jar phprpc.jar。
下载便能用。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

工程目錄dockerfile檔案建立dockerfile文件,後面會用到。檔案部署在伺服器新建/data/docker/hellolearn資料夾(檔案路徑可自訂),將maven打包好的jar包和上文中建立的dockerfile檔案複製到伺服器新建的資料夾(/data/docker/hellolearn) 。產生映像dockerbuild-thellolearn.dockerbuild-t映像名稱:標籤dockerfile的相對位置,點號代表目前目錄,不寫tag預設是latest。啟動容器doc

執行JAR檔案的先決條件在Linux系統上執行JAR檔案需要安裝Java執行環境(JRE),它是執行Java應用程式所需的基本元件,包括Java虛擬機器(JVM)、核心類別庫等。許多主流Linux發行版,如Ubuntu、Debian、Fedora、openSUSE等,都提供了JRE套件的軟體庫,方便使用者安裝。後文將詳細介紹在流行的發行版上安裝JRE的步驟。設定完JRE後,可以根據個人喜好選擇使用命令列終端機或圖形使用者介面來啟動JAR檔案。您的選擇可能取決於對Linuxshell的熟悉程度和個人偏好

maven的命令:1.mvncleanpackage-DskipTests:在專案目錄下執行此命令,在target目錄下產生jar包或war包。 2.mvnclean:清理專案生產的臨時檔案,一般是模組下的target目錄3.mvncompile-DskipTests:模組安裝指令將打包的的jar/war檔複製到你的本地倉庫中,供其他模組使用-Dmaven. test.skip=true跳過測試(同時會跳過testcompile).4.mvntest:測試指令,或執行src/test/java/下

使用Java的String.valueOf()函數將基本資料型別轉換為字串在Java開發中,當我們需要將基本資料型別轉換為字串時,常見的方法是使用String類別的valueOf()函數。這個函數可以接受基本資料類型的參數,並傳回對應的字串表示。在本文中,我們將探討如何使用String.valueOf()函數進行基本資料型別轉換,並提供一些程式碼範例來

char陣列轉string的方法:可以透過賦值來實現,使用{char a[]=" abc d\0efg ";string s=a;}語法,讓char陣列對string直接賦值,執行程式碼即可完成轉換。

一、SpringBoot指定設定檔路徑:在SpringBoot中,可以將設定檔放在jar包外面,這樣可以方便地修改配置而不需要重新打包和部署。以下是指定設定檔目錄的幾種方法:(按生效優先順序從高到低排序)1)使用命令列參數:在啟動應用程式時,可以使用--spring.config.location或-Dspring.config. location命令列參數來指定設定檔的路徑,例如:(config後面的/不可省略)java-jartest.jar--spring.config.locatio

前言springboot的設定檔中,設定檔的名字都有各自的意義跟用途dev開發環境prod生產環境(預設)test測試環境載入指定設定檔--spring.profiles.active=prodspringboot載入jar包的方式有/ /直接在控制台啟動,缺點就是控制台關閉專案也就關閉了。 java-jarbootdo.jar//這種方式可以運行在後台,但是如果推出了shell的話,那也會掛java-jar/bootdo-2.0.0.jar>bootdolog.file2>&

前言公司有個項目,時間比較趕,而且項目的部分需求,和之前做的項目部分功能一樣,為了趕速度和直接將之前多模組的maven項目中的部分模組,直接以jar包的形式引入到新專案中了,雖然省去了不少開發時間,但是造成專案需要導入引入專案jar的相關依賴,導致專案臃腫,啟動很慢。有沒有辦法讓專案只載入自己需要的bean呢?當然我們可以直接修改原始碼重新打包引入去解決,但這個辦法太多麻煩。透過百度的手段,查詢可以在springboot啟動類別上用@ComponentScan註解去實現程式碼範例@Componen
