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/