Divers frameworks de classe d'outils Util Hutool

Hutool est un homophonique «confus», ce qui implique la poursuite de l'état «d'être confus en tout, pas de perte, pas de gain».

Hutool est une boîte à outils Java, mais aussi juste une boîte à outils, qui nous aide à simplifier chaque ligne de code, à réduire chaque méthode et à rendre le langage Java «doux». Hutool était à l'origine une compilation du package "util" de mon projet. Plus tard, j'ai progressivement accumulé et ajouté plus de fonctions non liées à l'entreprise, et j'ai beaucoup appris l'essence d'autres projets open source. un ensemble d'outils open source riche. (FROM de l'introduction de l'auteur)

Fonctionnalités

Une classe d'outils de base Java qui encapsule des méthodes JDK telles que fichier, flux, cryptage et décryptage, transcodage, régulier, thread, XML, etc., pour former diverses classes d'outils Util, et fournit les composants suivants:

  • Package de proxy dynamique JDK hutool-aop, fournissant une prise en charge des aspects non IOC

  • hutool-bloomFilter Filtre Bloom, fournit des filtres Bloom de l'algorithme de hachage

  • cache hutool-cache

  • Le noyau de hutool-core, y compris les opérations Bean, les dates, divers utils, etc.

  • module de tâches de synchronisation hutool-cron, fournissant des tâches de synchronisation telles que les expressions Crontab

  • module de cryptage et de décryptage hutool-crypto

  • Opération de données après l'encapsulation JDBC hutool-db, basée sur l'idée d'ActiveRecord

  • hutool-dfa Recherche multi-mots-clés basée sur le modèle DFA

  • module d'extension hutool-extra, package pour tiers (moteur de template, email, etc.)

  • Package client Http hutool-http basé sur HttpUrlConnection

  • hutool-log reconnaît automatiquement la façade en rondins implémentée par le journal

  • package d'exécution de script hutool-script, tel que Javascript

  • hutool-setting Fichier de configuration des paramètres et package de propriétés plus puissants

  • package d'appel de paramètres système hutool-system (informations JVM, etc.)

  • Implémentation JSON hutool-json

  • Implémentation du code de vérification d'image hutool-captcha

Test simple

Au cours des deux derniers jours, j'ai utilisé Hutool pour remplacer certains codes dans Halo. Je dois dire qu'il est très facile à utiliser. Voici une brève introduction à certains des outils Hutool que j'ai utilisés.

SecureUtil (outil de cryptage et de décryptage)

Il est principalement utilisé lors de la connexion et lors de la modification du mot de passe. Le mot de passe de la base de données étant crypté par md5, vous devez donc le crypter avant d'interroger la base de données lors de la connexion. Si vous utilisez Hutool, il vous suffit d'appeler SecureUtil La méthode md5 fera l'affaire.

user = userService.userLoginByName(loginName,SecureUtil.md5(loginPwd));

HtmlUtil (classe d'outils HTML)

Cette classe d'outils est plus puissante, mais celle que j'utilise le plus dans Halo est HtmlUtil.encode, qui peut convertir certains caractères en caractères sûrs pour empêcher l'injection xss et l'injection SQL, comme la soumission de commentaires ci-dessous.

comment.setCommentAuthor(HtmlUtil.encode(comment.getCommentAuthor()));

C'est pour empêcher un petit méchant d'écrire délibérément du code js exécutable, puis de soumettre un commentaire, ce code sera exécuté dans le panneau d'arrière-plan, ce qui est plus dangereux. Utilisez la méthode d'encode pour convertir la balise en, de sorte qu'après la conversion, le code js est Il ne sera plus exécuté.

De plus, HtmlUtil fournit également les méthodes suivantes, vous pouvez l'essayer si vous êtes intéressé.

  • HtmlUtil.restoreEscaped restaure les caractères spéciaux HTML échappés

  • HtmlUtil.encode échappe les caractères HTML dans le texte en tant que caractères sûrs

  • HtmlUtil.cleanHtmlTag efface toutes les balises HTML

  • HtmlUtil.removeHtmlTag efface la balise HTML spécifiée et le contenu entouré par la balise

  • HtmlUtil.unwrapHtmlTag efface la balise HTML spécifiée, à l'exclusion du contenu

  • HtmlUtil.removeHtmlAttr supprime les attributs des balises HTML

  • HtmlUtil.removeAllHtmlAttr supprime tous les attributs de la balise spécifiée

  • HtmlUtil.filter filtre le texte HTML pour empêcher les attaques XSS

CronUtil (tâche chronométrée)

Cet outil est encore plus puissant. Il n'a pas besoin d'un framework tel que quartz pour effectuer des tâches de chronométrage, et CronUtil ne nécessite aucune autre dépendance. Il vous suffit de créer un fichier de configuration sous ressources, puis d'activer la tâche de chronométrage lorsque le programme démarre., Comme la fonction de sauvegarde planifiée de Halo (une sauvegarde à 1 h 00 tous les jours).

cron.setting:

cc.ryanc.halo.web.controller.admin.BackupController.backupResources = 0 0 1 * * ?
cc.ryanc.halo.web.controller.admin.BackupController.backupDatabase = 0 0 1 * * ?
cc.ryanc.halo.web.controller.admin.BackupController.backupPosts = 0 0 1 * * ?
@Override
public void onApplicationEvent(ContextRefreshedEvent event){
 this.loadActiveTheme();
 this.loadOptions();
 this.loadFiles();
 this.loadThemes();
 //启动定时任务
 CronUtil.start();
 log.info("定时任务启动成功!");
}

Pour une utilisation spécifique, veuillez consulter le document http://hutool.mydoc.io/?t=255673

D'accord, présentons ces trois outils. Si vous êtes intéressé, vous pouvez essayer d'autres outils. C'est assez complet. Cela devrait être la meilleure bibliothèque d'outils que j'ai jamais utilisée. Cela vaut la peine d'essayer.

Adresse du site officiel: http://www.hutool.cn/

Projet de combat réel

Récemment, lors de la refactorisation du projet open source ruoyi-vue, Hutool a été utilisé pour remplacer diverses classes d'outils Util dans le projet d'origine, et les petites 5000 lignes de code ont été directement supprimées.

Adresse GitHub: https://github.com/YunaiV/ruoyi-vue-pro

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42073629/article/details/115223219
conseillé
Classement