批改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。
下载便能用。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Conditions préalables à l'exécution de fichiers JAR L'exécution de fichiers JAR sur un système Linux nécessite l'installation de Java Runtime Environment (JRE), qui est le composant de base requis pour exécuter des applications Java, notamment la machine virtuelle Java (JVM), les bibliothèques de classes principales, etc. De nombreuses distributions Linux grand public, telles qu'Ubuntu, Debian, Fedora, openSUSE, etc., fournissent des bibliothèques logicielles de packages JRE pour faciliter l'installation par l'utilisateur. L'article suivant détaillera les étapes pour installer JRE sur les distributions populaires. Après avoir configuré le JRE, vous pouvez choisir d'utiliser le terminal de ligne de commande ou l'interface utilisateur graphique pour démarrer le fichier JAR selon vos préférences personnelles. Votre choix peut dépendre de votre familiarité avec les shells Linux et de vos préférences personnelles.

Créez un fichier dockerfile dans le fichier dockerfile du répertoire du projet, qui sera utilisé ultérieurement. Le fichier est déployé dans le dossier /data/docker/hellolearn nouvellement créé sur le serveur (le chemin du fichier peut être personnalisé). Copiez le package jar packagé maven et le fichier docker créé ci-dessus dans le dossier nouvellement créé sur le serveur (/data/). docker/hellolearn). Générez l'image dockerbuild-thellolearn.dockerbuild-t Nom de l'image : la position relative du fichier docker de l'étiquette, le point représente le répertoire courant, et la valeur par défaut est la plus récente si aucune balise n'est écrite. Démarrer la documentation du conteneur

Commande maven : 1.mvncleanpackage-DskipTests : exécutez cette commande dans le répertoire du projet pour générer un package jar ou un package war dans le répertoire cible. 2.mvnclean : Nettoyez les fichiers temporaires produits par le projet, généralement le répertoire cible sous le module 3.mvncompile-DskipTests : La commande d'installation du module copie le fichier jar/war emballé dans votre entrepôt local pour une utilisation par d'autres modules -Dmaven test. .skip=true ignore les tests (la compilation de tests sera également ignorée).4.mvntest : commande de test ou exécutez src/test/java/

Convertir les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Dans le développement Java, lorsque nous devons convertir les types de données de base en chaînes, une méthode courante consiste à utiliser la fonction valueOf() de la classe String. Cette fonction peut accepter les paramètres des types de données de base et renvoyer la représentation sous forme de chaîne correspondante. Dans cet article, nous explorerons comment utiliser la fonction String.valueOf() pour les conversions de types de données de base et fournirons quelques exemples de code pour

Méthode de conversion d'un tableau de caractères en chaîne : cela peut être réalisé par affectation. Utilisez la syntaxe {char a[]=" abc d\0efg ";string s=a;} pour laisser le tableau de caractères attribuer directement une valeur à la chaîne et l'exécuter. le code pour terminer la conversion.

Avant-propos Dans le fichier de configuration de springboot, les noms des fichiers de configuration ont leurs propres significations et utilisations. dev environnement de développement prod environnement de production (par défaut) test environnement de test charge le fichier de configuration spécifié--spring.profiles.active=prod Les moyens de le faire. springboot pour charger les packages jar est/ /Démarrer directement dans la console. L'inconvénient est que le projet sera fermé à la fermeture de la console. java-jarbootdo.jar//Cette méthode peut s'exécuter en arrière-plan, mais si le shell est lancé, elle se bloquera également java-jar/bootdo-2.0.0.jar>bootdolog.file2>&

1. SpringBoot spécifie le chemin du fichier de configuration : Dans SpringBoot, le fichier de configuration peut être placé en dehors du package jar, afin que la configuration puisse être facilement modifiée sans reconditionnement ni déploiement. Il existe plusieurs façons de spécifier le répertoire du fichier de configuration : (triés de priorité d'efficacité élevée à faible) 1) Utilisez les paramètres de ligne de commande : lors du démarrage de l'application, vous pouvez utiliser --spring.config.location ou -Dspring.config. Le paramètre de ligne de commande location spécifie le chemin d'accès au fichier de configuration, par exemple : (le / après la configuration ne peut pas être omis) java-jartest.jar--spring.config.locatio

L'arrière-plan de l'histoire se trouve dans un framework appelé magic-api. Vous pouvez écrire du code de manière low-code, le compiler et l'exécuter dynamiquement. Cependant, si vous souhaitez charger certaines classes d'importation, vous devez charger le fichier jar dans le fichier. projet avant de pouvoir l'importer. Ensuite, chaque fois que vous arrivez à de nouvelles classes, vous devez recharger la classe dans le projet, puis empaqueter le projet, puis importer... C'est très fastidieux ! ! ! Bien sûr, nous devons également mentionner un processus général d'exécution de la magie. Lorsque vous obtenez une copie du code source, l'importation sur le fichier d'en-tête sera chargée dans la mémoire via Class.forName dans le code source. , utilisez simplement URLClassLo.
