author :Ryan Wang
link :https://ryanc.cc/archives/hutool-java-tools-lib
brief introduction
Hutool yes Hu + tool I made my own words , The former pays homage to me “ A former company ”, The latter means tool , homophonic “ Muddle headed ”, Moral pursuit “ All things are confused , It doesn't matter , It doesn't matter ” The state of .
Hutool It's a Java tool kit , It's just a toolkit , It helps us simplify every line of code , Reduce every method , Give Way Java Language can also “ Sweet ”.Hutool It was originally in my project “util” A finishing of the bag , Later, it gradually accumulated and added more non business related functions , And learn the essence of other open source projects , After self arrangement and modification , The result is a rich set of open source tools .( Copy from the author's profile )
function
One Java Basic tools , The file 、 flow 、 Encryption and decryption 、 transcoding 、 Regular 、 Threads 、XML etc. JDK Method to encapsulate , Make up all kinds of Util Tool class , The following components are also provided :
hutool-aop JDK Dynamic agent encapsulation , Provide non IOC Next aspect support
hutool-bloomFilter Bloon filtration , Provide some Hash Algorithm's bloom filtering
hutool-cache cache
hutool-core The core , Include Bean operation 、 date 、 Various Util etc.
hutool-cron Timing task module , Provide classes Crontab Expression timing task
hutool-crypto Encryption and decryption module
hutool-db JDBC Data operation after encapsulation , be based on ActiveRecord thought
hutool-dfa be based on DFA Multi keyword search of model
hutool-extra Extension module , Encapsulate... To a third party ( template engine 、 Mail, etc. )
hutool-http be based on HttpUrlConnection Of Http Client encapsulation
hutool-log Automatic recognition of the log door
hutool-script Script execution encapsulation , for example Javascript
hutool-setting More powerful Setting Configuration files and Properties encapsulation
hutool-system System parameter call encapsulation (JVM Information, etc )
hutool-json JSON Realization
hutool-captcha Picture verification code implementation
A simple test
These two days use Hutool hold Halo in
Some code of the face has been replaced , Have to say , It's easy to use , Here is a brief introduction to some of the Hutool Tool class of .
SecureUtil( Encryption and decryption tools )
It is mainly used in login and password modification , Because the password in the database is md5 Encrypted , So when you log in, you need to encrypt first and then query the database , Use Hutool Words , Just call SecureUtil Medium md5 The method is ok .
user = userService.userLoginByName(loginName,SecureUtil.md5(loginPwd));
HtmlUtil(HTML Tool class )
This tool class is more powerful , But I am Halo The most used one is HtmlUtil.encode, You can convert some characters into safe characters , prevent xss Injection and SQL Inject , For example, the following comments are submitted .
comment.setCommentAuthor(HtmlUtil.encode(comment.getCommentAuthor()));
This is to prevent the villain from intentionally writing something executable js Code , Then submit a comment , This code will be executed in the background panel , More dangerous , Use encode The method can be
It can be <script> Label to translate into <script>, After this transformation ,js The code will not execute .
in addition ,HtmlUtil The following methods are also provided , If you are interested, you can try .
HtmlUtil.restoreEscaped Restore the escaped HTML Special characters
HtmlUtil.encode In the escape text HTML Characters are safe characters
HtmlUtil.cleanHtmlTag Clear all HTML label
HtmlUtil.removeHtmlTag Clear designation HTML Tags and content surrounded by tags
HtmlUtil.unwrapHtmlTag Clear designation HTML label , Not including content
HtmlUtil.removeHtmlAttr Remove HTML Properties in Tags
HtmlUtil.removeAllHtmlAttr Remove all attributes of the specified tag
HtmlUtil.filter Filter HTML Text , prevent XSS attack
CronUtil( Timing task )
This tool is even more powerful , There's no need for anything like quartz Such a framework to do timed tasks , and CronUtil There is no need for any other dependence , Only need resources Create a configuration file , Then, when the program starts, start the scheduled task , Such as Halo The scheduled backup function of ( Every morning 1 Click backup once ).
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();
// Start timing task
CronUtil.start();
log.info(" Timed task started successfully !");
}
Please refer to the document for details http://hutool.mydoc.io/?t=255673
Okay , Introduce these three tool classes , You can try other tools if you are interested , It's quite complete , This should be the best tool library I've ever used , It's worth a try .
Official website address :http://www.hutool.cn/
Book delivery at the end of the article
Books 《Java High concurrency programming guide 》X 6
Author's brief introduction
System : The book is divided into foundations 、 Advanced 、 Four parts of development and actual combat , Systematic explanation Java High concurrency programming technology
thorough : Depth analysis Java Contract issuance 、Dubbo Such as framework source design , Appreciate the art of code design of big names
actual combat : The theory of distributed system design is combined with project practice , Understanding theory , Landing , Hand in hand to teach you to understand the core technology of high concurrency project
Conditional direct purchase
Sweepstakes rules :( Tencent's official lottery assistant )
0、 Draw deadline :2020 year 11 month 7 Japan 20:00
1、 It has to be fans
2、 After winning the prize, please 1 Contact me within days , If I have your friends, they will remind you if they are you
3、 Scan the following QR code and reply “ Good book ” You can get the lottery code