springboot集成Hutool工具类库-hutool-core

引入全部工具类库

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.10</version>
</dependency>

引入核心类库-包括集合、字符串、Bean等工具

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-core</artifactId>
    <version>5.3.10</version>
</dependency>

hutool-core中常用api

1.生成随机32位uuid

IdUtil.fastSimpleUUID()

2.身份证号常用工具
是否有效身份证号

IdcardUtil.isValidCard(idCard)

根据身份编号获取年龄

IdcardUtil.getAgeByIdCard(idCard)

根据身份编号获取性别(1 : 男 , 0 : 女)

IdcardUtil.getGenderByIdCard(idCard)

根据身份编号获取户籍省份

IdcardUtil.getProvinceByIdCard(idCard)

身份证号脱敏,显示前4后3

IdcardUtil.hide(idCard,4,15)

根据身份编号获取生日

IdcardUtil.getBirth(idCard)

3.正则相关工具类

英文字母或数字或下划线

Validator.isGeneral(content)

移动电话

Validator.isMobile(content)

是否为字母

Validator.isWord(content)

是否为数字

Validator.isNumber(content)

身份证号码

Validator.isCitizenId(content)

邮件

Validator.isEmail(content)

是否是汉子,是否包含汉字

Validator.isChinese(content)
Validator.hasChinese(content)

4.文件处理类

读取文件字节流

FileUtil.readBytes(path);

文件是否存在

FileUtil.exist(path)

是否绝对路径

FileUtil.isAbsolutePath(path)

是不是目录

FileUtil.isDirectory(path)

是不是文件

FileUtil.isFile(path)

文件夹是不是空的

FileUtil.isDirEmpty(dir)

循环指定目录以及子目录下的所有文件

FileUtil.loopFiles(dirPath).forEach(loopFile->{
    System.out.println(loopFile.getName());
});

循环指定目录以及子目录下的所有满足条件的文件

FileUtil.loopFiles(dirPath,fileFilter-> FileUtil.isNotEmpty(fileFilter)).forEach(loopFile->{
    System.out.println(loopFile.getName());
});

循环指定深度目录以及子目录下的所有满足条件的文件

FileUtil.loopFiles(FileUtil.file(dirPath),1,fileFilter-> FileUtil.isNotEmpty(fileFilter)).forEach(loopFile->{
    System.out.println(FileTypeUtil.getType(loopFile));
});

获取文件类型

FileTypeUtil.getType(loopFile);
FileTypeUtil.getTypeByPath(path)

复制文件

FileUtil.copy(path,destPath,false);

5.http工具类

常用get,post请求

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.32</version>
</dependency>
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;

@Slf4j
public class MyHttpUtil {

    public Map<String, Object> executeGetRequest(String url, Map<String, Object> params, String token) {
        long startTime = System.currentTimeMillis();
        Map<String, Object> result = new HashMap<>();

        try {
            HttpRequest httpRequest = HttpUtil.createGet(url);
            httpRequest.form(params);
            httpRequest.header("Authorization", token);
            HttpResponse httpResponse = httpRequest.execute();
            String strResult = httpResponse.body();
            long endTime = System.currentTimeMillis();

            log.info(strResult);
            result = JSON.parseObject(strResult, Map.class);
            log.info("调用时间:" + (endTime - startTime) + "ms");    //输出程序运行时间
            result.put("returnCode", "2000");
            return result;
        }catch (Exception e) {
            log.error(e.getMessage(),e);
            result.put("returnCode", "4000");
            result.put("data", null);
            return result;
        }
    }

    public Map<String, Object> executePostRequest(String url, Map<String, Object> params, String token) {
        long startTime = System.currentTimeMillis();
        Map<String, Object> result = new HashMap<>();

        try {
            HttpRequest httpRequest = HttpUtil.createPost(url);
            httpRequest.header("Authorization", token);
            String body = JSON.toJSONString(params);
            httpRequest.body(body);
            HttpResponse httpResponse = httpRequest.execute();
            String strResult = httpResponse.body();
            long endTime = System.currentTimeMillis();

            log.info(strResult);
            result = JSON.parseObject(strResult, Map.class);
            log.info("调用时间:" + (endTime - startTime) + "ms");    //输出程序运行时间
            result.put("returnCode", "2000");
            return result;
        }catch (Exception e) {
            log.error(e.getMessage(),e);
            result.put("returnCode", "4000");
            result.put("data", null);
            return result;
        }
    }
}
package com.study.hutool.http;

import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;

import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.util.Map;

/**
 * hutool方式http工具类
 * 支持https请求(默认不验证ssl证书及所有域名被信任)
 */
public class HttpUtil {

    /**
     * POST请求
     *
     * @param url
     * @param request
     * @param headers
     * @return
     */
    public static String post(String url, Map<String, Object> request, Map<String, String> headers) {
        String resStr = HttpRequest.post(url).form(request)
                .addHeaders(headers).execute().body();
        return resStr;
    }

    /**
     * POST请求
     * 请求对象转json格式
     *
     * @param url
     * @param request
     * @param headers
     * @return
     */
    public static String post(String url, Object request, Map<String, String> headers) {
        String resStr = HttpRequest.post(url).body(JSON.toJSONString(request))
                .addHeaders(headers).execute().body();
        return resStr;
    }

    /**
     * get请求
     *
     * @param url
     * @param headers
     * @return
     */
    public static String get(String url, Map<String, String> headers) {
        String resStr = HttpRequest.get(url).addHeaders(headers).execute().body();
        return resStr;
    }

    /**
     * put请求
     *
     * @param url
     * @param headers
     * @param request
     * @return
     */
    public static String put(String url, Map<String, String> headers, Map<String, Object> request) {
        String resStr = HttpRequest.put(url).addHeaders(headers)
                .form(request).execute().body();
        return resStr;
    }

    /**
     * 配置代理
     * @param url
     * @param headers
     * @param request
     * @param host
     * @param port
     * @param authUser
     * @param authPassword
     * @return
     */
    public static String proxy(String url, Map<String, String> headers, Map<String, Object> request, String host, int port, String authUser, String authPassword) {
        if (null != authUser) {
            //如果遇到https代理错误Proxy returns "HTTP/1.0 407 Proxy Authentication Required",可以尝试
            System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
            Authenticator.setDefault(
                    new Authenticator() {
                        @Override
                        public PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication(authUser, authPassword.toCharArray());
                        }
                    }
            );
        }

        String resStr = HttpRequest.post(url)
                //此处代理类型http
                .setProxy(new Proxy(Proxy.Type.HTTP,
                        new InetSocketAddress(host, port)))
                .form(request)
                .addHeaders(headers)
                .execute().body();
        return resStr;
    }


}
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: hutool-all-5.7.20.jar是一个Java编写的工具类,它提供了丰富的工具方法、函数和静态常量,帮助开发者们高效地开发Java应用程序。它的具体特点包括: 1. 提供了基础型数据类型之间的转换、字符串、集合、日期、IO等常用工具类封装。 2. 提供了高效便捷的文件操作,包括读、写、复制、移动、压缩、解压等功能。 3. 提供了快速生成二维码和条码等功能。 4. 提供了XML文件解析、JSON转换等常用数据格式转换的封装。 5. 提供了加密、解密、摘要等常用加密算法封装,包括MD5、SHA、AES、DES等。 6. 提供了爬虫、定时任务等高级功能的支持,可以帮助开发者更方便地处理复杂业务逻辑。 总之,hutool-all-5.7.20.jar是一个非常优秀的Java工具类,它能够极大地提高Java应用程序的开发效率,为开发者们带来更多的便捷和支持。 ### 回答2: hutool-all-5.7.20.jar是一个开源的Java工具,主要用于简化Java开发中的一些常见任务。它包含丰富的工具类,如字符串工具类、集合工具类、IO工具类、日期工具类等等,可以让开发人员更加便捷地完成开发任务。 hutool-all-5.7.20.jar的优点很多,首先它提供了很多高效的工具类,这些工具类可以帮助开发人员节省很多时间和精力。其次,这个Java工具非常易于使用,开发人员可以轻松地将其集成到自己的项目中,而且不需要学习很多复杂的API和语法。 此外,hutool-all-5.7.20.jar还提供了很多实用的功能,如JSON解析、加密解密、文件压缩、Excel处理等等,这些功能可以让开发人员更加方便地完成各种开发任务。最后,这个Java工具还拥有非常活跃的社区支持,开发人员可以通过社区获得帮助和指导。 总之,hutool-all-5.7.20.jar是一个非常实用的Java工具,它可以帮助开发人员更加高效地完成开发任务。如果你是Java开发人员,那么强烈建议你使用这个工具,相信它一定能够大大提升你的开发效率。 ### 回答3: hutool-all-5.7.20.jar是一款Java工具类,提供大量封装好的工具类、接口和方法,包括字符串操作、日期时间处理、加密解密、文件操作、网络通信、HTML解析等。hutool-all-5.7.20.jar底层基于jdk封装,采用Apache License 2.0协议,使用和转载完全免费。 hutool-all-5.7.20.jar提供了许多常用的工具类,让开发者可以快速高效地完成各种操作,例如:StrUtil类中提供了许多字符串操作的方法,如判断是否为空、是否为null、是否为空白字符等;DateUtil类中提供了格式化、解析、计算时间差等方法,非常适合处理日期时间;SecureUtil类中提供了常见的加密算法,如md5、SHA-1等;FileUtil类中提供了常用的文件操作方法,如创建文件、删除文件、复制文件等;EmailUtil、HttpUtil等类则为网络通信提供了方便的方法等等。 由于hutool-all-5.7.20.jar提供了大量丰富的工具类和方法,使得开发人员可以快速编写出高质量、高效的Java程序,提高生产力和开发速度,受到了广大Java开发者的推崇。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大佬腿好粗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值