Прекратите инкапсулировать различные классы инструментов Util, эта инфраструктура божественного уровня стоит того!

Java

Hutool гомофонно «запутался», что означает стремление к царству «все запутано, нечего терять, нечего приобретать».

Hutool — это набор инструментов для Java, и просто набор инструментов, он помогает нам упростить каждую строку кода, сократить каждый метод и сделать язык Java «приятным». Изначально Hutool представлял собой компоновку пакета «util» в моем проекте, а затем постепенно накапливал и добавлял больше не связанных с бизнесом функций, а также широко изучал суть других проектов с открытым исходным кодом. (Скопировано из введения автора)

Функции

Базовый класс инструментов Java, который инкапсулирует методы JDK, такие как файлы, потоки, шифрование и дешифрование, транскодирование, регуляризация, многопоточность и XML для формирования различных классов инструментов Util, и предоставляет следующие компоненты:

  • Пакет динамического прокси-сервера hutool-aop JDK, обеспечивающий поддержку аспектов в не-IOC
  • hutool-bloomFilter Фильтр Блума, предоставляет фильтр Блума алгоритма хэширования.
  • кеш hutool-cache
  • Ядро hutool-core, включая Bean-операции, даты, различные Utils и т.д.
  • модуль задач синхронизации hutool-cron, предоставляющий задачи синхронизации, такие как выражения Crontab
  • модуль шифрования и дешифрования hutool-crypto
  • hutool-db JDBC инкапсулирует операции с данными, основанные на идее ActiveRecord
  • hutool-dfa Поиск по нескольким ключевым словам на основе модели DFA
  • модуль расширения hutool-extra, инкапсулирует сторонние (шаблонизатор, почта и т.д.)
  • hutool-http Инкапсуляция HTTP-клиента на основе HttpUrlConnection
  • hutool-log автоматически идентифицирует бревенчатый фасад, реализованный бревенчатым
  • Оболочка выполнения сценария hutool-script, например Javascript
  • hutool-setting Более мощный файл конфигурации настроек и пакет свойств
  • Пакет вызова системных параметров hutool-system (информация JVM и т. д.)
  • hutool-json реализация JSON
  • Реализация кода проверки изображения hutool-captcha

простой тест

За последние два дня я использовал Hutool для замены части кода в Halo.Должен сказать, что им очень приятно пользоваться.Вот краткое введение в некоторые инструменты Hutool, которые я использую.

SecureUtil (инструмент для шифрования и дешифрования)

Он в основном используется при входе в систему и изменении пароля, потому что пароль в базе данных зашифрован с помощью md5, поэтому при входе в систему его необходимо зашифровать перед переходом к базе данных для запроса.Если вы используете Hutool, вам нужно только call SecureUtil Метод md5 вполне подойдет.

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

HtmlUtil (служебный класс HTML)

Этот класс инструментов является более мощным, но в Halo я чаще всего использую HtmlUtil.encode, который может преобразовывать некоторые символы в безопасные символы для предотвращения внедрения xss и SQL-внедрения, таких как отправка следующего комментария.

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

Это сделано для того, чтобы какой-нибудь злодей специально не написал какой-то исполняемый js-код, а затем отправил комментарий, этот фрагмент кода будет выполняться в фоновой панели, что более опасно.Использовать метод encode для преобразования тега в не будет казнен.

Кроме того, HtmlUtil также предоставляет следующие методы, если вам интересно, вы можете попробовать их.

  • HtmlUtil.restoreEscaped восстанавливает экранированные специальные символы HTML
  • HtmlUtil.encode Преобразовывает символы HTML в тексте в безопасные символы
  • HtmlUtil.cleanHtmlTag очищает все HTML-теги.
  • HtmlUtil.removeHtmlTag удаляет указанный тег HTML и содержимое, заключенное в тег
  • HtmlUtil.unwrapHtmlTag очищает указанный тег HTML, исключая содержимое.
  • HtmlUtil.removeHtmlAttr удаляет атрибуты из тегов HTML.
  • HtmlUtil.removeAllHtmlAttr удаляет все атрибуты указанного тега.
  • HtmlUtil.filter фильтрует HTML-текст для предотвращения XSS-атак.

CronUtil (запланированная задача)

Этот инструмент еще более мощный, ему не нужен фреймворк вроде кварца для выполнения запланированных задач, а CronUtil не нуждается ни в каких других зависимостях, вам нужно только создать файл конфигурации под ресурсами, а затем включить запланированное задание при запуске программы. Например, функция запланированного резервного копирования Halo (резервное копирование один раз в день в 1:00).

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("定时任务启动成功!");
}

Пожалуйста, обратитесь к документации для конкретного использованияhutool.mydoc.io/?t=255673

Итак, я представлю вам эти три класса инструментов. Если вам интересно, вы можете попробовать другие инструменты. Они достаточно обширны. Это должна быть лучшая библиотека классов инструментов, которую я когда-либо использовал. Стоит попробовать.

Адрес официального сайта:www.hutool.cn/