JAVA开发超好用第三方类库收集(2021-01-15 增加树状结构对象业务处理工具类)

本文旨在收集在JAVA开发中用到的超实用的类库,持续更新哦~ 记得收藏不迷路。
 
版权说明: 本文由博主keep丶原创,转载请注明出处。
原文地址:https://blog.csdn.net/qq_38688267/article/details/107846375
最近更新时间: 2020-11-23 09:27:05
最后更新内容: 增加工具Caffeine介绍。

文章目录

  • 简化代码类
    • Lombok
    • Mybatis Plus
    • MapStruct
  • 实用工具类
    • Hutool
    • JWT
    • Swagger
    • Caffeine
    • TreeService

简化代码类

Lombok

  • 推荐指数:★★★★☆
  • 主要功能:自动生成实体类Getter、Setter、toString、构造等方法
  • 主页:https://projectlombok.org/
  • 说明:Lombok一个注解给我们省了很多代码量,实在不要太方便。可能有些人说通过IDEA等工具也能一键生成这些方法,但是一旦修改了字段后改起来就很麻烦,一系列的都要改。但是该工具也存在一部分负面的说法,具体可以问度娘~
  • maven依赖
            
            <dependency>
                <groupId>org.projectlombokgroupId>
                <artifactId>lombokartifactId>
                <version>1.18.12version>
            dependency>
  • 使用效果
    JAVA开发超好用第三方类库收集(2021-01-15 增加树状结构对象业务处理工具类)_第1张图片

 

Mybatis Plus

  • 推荐指数:★★★★★
  • 主要功能:代码生成器、通用CRUD接口、分页插件、自定义ID生成器等
  • 主页:https://mp.baomidou.com/
  • 说明:Mybatis Plus是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。用过的都说香!墙裂推荐!!!
  • maven依赖
			
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-boot-starterartifactId>
                <version>3.3.2version>
            dependency>

			
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-generatorartifactId>
                <version>3.3.2version>
            dependency>

			
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-annotationartifactId>
                <version>3.3.2version>
            dependency>
			
			
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-coreartifactId>
                <version>3.3.2version>
            dependency>

			
            <dependency>
                <groupId>com.baomidougroupId>
                <artifactId>mybatis-plus-extensionartifactId>
                <version>3.3.2version>
            dependency>

 

MapStruct

  • 推荐指数:★★★☆☆
  • 主要功能:基于注解生成对象转换的工具,简化了Java bean类型之间映射的实现。
  • 主页:https://mapstruct.org/
  • 说明:跟Lombok相似,MapStruct也是通过注解生成代码,主要用于代码中DO、DTO、VO、BO等对象之间的转换。
  • maven依赖
        
        <dependency>
            <groupId>org.mapstructgroupId>
            <artifactId>mapstructartifactId>
        dependency>

		
        <dependency>
            <groupId>org.mapstructgroupId>
            <artifactId>mapstruct-processorartifactId>
        dependency>
  • 使用效果
    JAVA开发超好用第三方类库收集(2021-01-15 增加树状结构对象业务处理工具类)_第2张图片

 
 

实用工具类

Hutool

  • 推荐指数:★★★★☆
  • 主要功能:一个小而全的Java工具类库,通过静态方法封装。
  • 主页:https://www.hutool.cn/docs/#/
  • 说明:Hutool是项目中“util”包友好的替代!对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,并且分别提供依赖。具体如下:
模块 介绍
hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 简单缓存实现
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现
hutool-poi 针对POI中Excel和Word的封装
hutool-socket 基于Java的NIO和AIO的Socket封装
hutool-all 包含以上所有模块,一般情况下不要直接依赖这个
  • maven依赖
            
            <dependency>
                <groupId>cn.hutoolgroupId>
                <artifactId>hutool-coreartifactId>
                <version>5.3.10version>
            dependency>

 

JWT

  • 推荐指数:★★★★☆
  • 主要功能:用于生成有加密信息的token
  • 主页:https://jwt.io/
  • 说明:JSON Web Tokens是开源的,有行业标准 (RFC 7519),用于安全地在双方之间表示声明。这个的应用场景就不用多说了吧~
  • maven依赖
        
        <dependency>
            <groupId>com.auth0groupId>
            <artifactId>java-jwtartifactId>
            <version>3.10.3version>
        dependency>

 

Swagger

  • 推荐指数:★★★★★
  • 主要功能:通过注解和配置,自动扫描API接口生成接口文档页面。
  • 主页:https://swagger.io/
  • 说明:丝袜哥还是还是非常香的,基本不需要写接口文档了。而且也没有增加什么工作量,因为字段、方法、类的介绍我们本来就要写的,现在只要写到一个注解里面,就能生成接口文档。如果觉得他自带的接口文档界面不美观,可以增加下面的依赖美化UI哦~
  • maven依赖
		
        <dependency>
            <groupId>io.springfoxgroupId>
            <artifactId>springfox-swagger2artifactId>
            <version>2.9.2version>
        dependency>
		
		<dependency>
			<groupId>com.github.xiaoymingroupId>
			<artifactId>swagger-bootstrap-uiartifactId>
			<version>1.9.6version>
		dependency>
  • 使用效果
    JAVA开发超好用第三方类库收集(2021-01-15 增加树状结构对象业务处理工具类)_第3张图片

Caffeine

  • 推荐指数:★★★★★
  • 主要功能:Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代,基于LRU算法实现,支持多种缓存过期策略。
  • 主页:https://gitee.com/mirrors/ben-manes-caffeine?hmsr=aladdin1e6
  • 说明:想做个类似于Redis的支持过期的本地缓存?Caffeine就再合适不过了~
  • maven依赖
        <dependency>
            <groupId>com.github.ben-manes.caffeinegroupId>
            <artifactId>caffeineartifactId>
            <version>2.8.6version>
        dependency>
  • 使用效果
/**
 * Caffeine支持三种过期策略:
 * expireAfterWrite:代表着写了之后多久过期。(上面列子就是这种方式)
 * expireAfterAccess: 代表着最后一次访问了之后多久过期。
 * expireAfter:在expireAfter中需要自己实现Expiry接口,
 * 		这个接口支持create,update,以及access了之后多久过期。
 * 		注意这个API和前面两个API是互斥的。这里和前面两个API不同的是,
 * 		需要你告诉缓存框架,他应该在具体某个时间过期,也就是通过前面的
 * 		重写create,update,以及access的方法,获取具体的过期时间。
 */

LoadingCache<String, String> build = CacheBuilder
	.newBuilder()
	.initialCapacity(1)//初始缓存长度为1
	.maximumSize(100)//最大长度为100
	.expireAfterWrite(1, TimeUnit.DAYS)//设置缓存策略在1天未写入过期缓存
	.build(new CacheLoader<String, String>() {
	    //默认的数据加载实现,当调用get取值的时候,
	    //如果key没有对应的值,就调用这个方法进行加载
	    @Override
	    public String load(String key)  {
	         return "";
	    }
	}
);

TreeService

  • 推荐指数:★★★
  • 主要功能:这是作者自己封装的工具类,实现了树状结构对象的基础功能,比如移动节点、删除节点等功能,还是很不错的,推荐给大家。
  • 链接:https://blog.csdn.net/qq_38688267/article/details/112675319

你可能感兴趣的:(java,java)