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

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

简化代码类

Lombok

  • 推荐指数:★★★★☆
  • 主要功能:自动生成实体类Getter、Setter、toString、构造等方法
  • 主页https://projectlombok.org/
  • 说明:Lombok一个注解给我们省了很多代码量,实在不要太方便。可能有些人说通过IDEA等工具也能一键生成这些方法,但是一旦修改了字段后改起来就很麻烦,一系列的都要改。但是该工具也存在一部分负面的说法,具体可以问度娘~
  • maven依赖
            <!-- Lombok依赖 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.12</version>
            </dependency>
  • 使用效果
    在这里插入图片描述

 

Mybatis Plus

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

			<!-- 代码生成器 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.3.2</version>
            </dependency>

			<!-- 注解支持 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
                <version>3.3.2</version>
            </dependency>
			
			<!-- 核心依赖 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-core</artifactId>
                <version>3.3.2</version>
            </dependency>

			<!-- 条件构造器 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-extension</artifactId>
                <version>3.3.2</version>
            </dependency>

 

MapStruct

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

		<!-- 执行依赖,不增加该依赖无法生成代码 -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
        </dependency>
  • 使用效果
    在这里插入图片描述

 
 

实用工具类

Hutool

  • 推荐指数:★★★★☆
  • 主要功能:一个小而全的Java工具类库,通过静态方法封装。
  • 主页https://www.hutool.cn/docs/#/
  • 说明:Hutool是项目中“util”包友好的替代!对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,并且分别提供依赖。具体如下:
模块介绍
hutool-aopJDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache简单缓存实现
hutool-core核心,包括Bean操作、日期、各种Util等
hutool-cron定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto加密解密模块,提供对称、非对称和摘要算法封装
hutool-dbJDBC封装后的数据操作,基于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-jsonJSON实现
hutool-captcha图片验证码实现
hutool-poi针对POI中Excel和Word的封装
hutool-socket基于Java的NIO和AIO的Socket封装
hutool-all包含以上所有模块,一般情况下不要直接依赖这个
  • maven依赖
            <!-- 核心,包括Bean操作、日期、各种Util等 -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-core</artifactId>
                <version>5.3.10</version>
            </dependency>

 

JWT

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

 

Swagger

  • 推荐指数:★★★★★
  • 主要功能:通过注解和配置,自动扫描API接口生成接口文档页面。
  • 主页https://swagger.io/
  • 说明:丝袜哥还是还是非常香的,基本不需要写接口文档了。而且也没有增加什么工作量,因为字段、方法、类的介绍我们本来就要写的,现在只要写到一个注解里面,就能生成接口文档。如果觉得他自带的接口文档界面不美观,可以增加下面的依赖美化UI哦~
  • maven依赖
		<!-- swagger核心依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
		<!-- swagger ui美化插件 -->
		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>swagger-bootstrap-ui</artifactId>
			<version>1.9.6</version>
		</dependency>
  • 使用效果
    在这里插入图片描述

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.caffeine</groupId>
            <artifactId>caffeine</artifactId>
            <version>2.8.6</version>
        </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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值