最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot整合hutool驗證碼的實例代碼

 更新時間:2024年08月16日 11:50:25   作者:程序員-小李  
在 Spring Boot 中,你可以將 Hutool 生成驗證碼的功能集成到 RESTful API 接口中,這篇文章主要介紹了Springboot整合hutool驗證碼,需要的朋友可以參考下

在 Spring Boot 中,你可以將 Hutool 生成驗證碼的功能集成到 RESTful API 接口中。

依賴

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.14</version> <!-- 使用最新版本 -->
</dependency>

創(chuàng)建驗證碼

package com.base.controller;
import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.captcha.ShearCaptcha;
import cn.hutool.captcha.generator.MathGenerator;
import cn.hutool.captcha.generator.RandomGenerator;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
@RequestMapping("/api/captcha")
@Api(tags = "驗證碼")
public class CaptchaController {
    @GetMapping("/image")
    @ApiOperation("線段干擾的驗證碼")
    public void getCaptchaImage(HttpServletResponse response) throws IOException {
        //定義圖形驗證碼的長和寬
        LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100);
        System.out.println("驗證碼:"+captcha.getCode());
        // 設(shè)置響應(yīng)類型為圖片
        response.setContentType("image/png");
        // 將驗證碼圖片寫入響應(yīng)
        captcha.write(response.getOutputStream());
    }
    @GetMapping("/image2")
    @ApiOperation("圓圈干擾驗證碼")
    public void getCaptchaImage2(HttpServletResponse response) throws IOException {
        // 創(chuàng)建驗證碼對象
        //定義圖形驗證碼的長、寬、驗證碼字符數(shù)、干擾元素個數(shù)
        CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 20);
        System.out.println("驗證碼:"+captcha.getCode());
        // 設(shè)置響應(yīng)類型為圖片
        response.setContentType("image/png");
        // 將驗證碼圖片寫入響應(yīng)
        captcha.write(response.getOutputStream());
    }
    @GetMapping("/image3")
    @ApiOperation("扭曲干擾驗證碼")
    public void getCaptchaImage3(HttpServletResponse response) throws IOException {
        //定義圖形驗證碼的長、寬、驗證碼字符數(shù)、干擾線寬度
        ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(200, 100, 4, 4);
        System.out.println("驗證碼:"+captcha.getCode());
        // 設(shè)置響應(yīng)類型為圖片
        response.setContentType("image/png");
        // 將驗證碼圖片寫入響應(yīng)
        captcha.write(response.getOutputStream());
    }
    @GetMapping("/image4")
    @ApiOperation("自定義純數(shù)字的驗證碼")
    public void getCaptchaImage4(HttpServletResponse response) throws IOException {
        //定義圖形驗證碼的長、寬、驗證碼字符數(shù)、干擾線寬度
        // 自定義純數(shù)字的驗證碼(隨機4位數(shù)字,可重復(fù))
        RandomGenerator randomGenerator = new RandomGenerator("0123456789", 4);
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);
        lineCaptcha.setGenerator(randomGenerator);
        // 重新生成code
        lineCaptcha.createCode();
        // 設(shè)置響應(yīng)類型為圖片
        response.setContentType("image/png");
        // 將驗證碼圖片寫入響應(yīng)
        lineCaptcha.write(response.getOutputStream());
    }
    @GetMapping("/image5")
    @ApiOperation("加減乘除的驗證碼")
    public void getCaptchaImage5(HttpServletResponse response) throws IOException {
        ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(200, 45, 4, 4);
        // 自定義驗證碼內(nèi)容為四則運算方式
        captcha.setGenerator(new MathGenerator(1));
        // 重新生成code
        captcha.createCode();
        MathGenerator mathGenerator = new MathGenerator();
//      用戶輸入校驗
        System.out.println("驗證結(jié)果:"+mathGenerator.verify(captcha.getCode(), "1"));
        // 設(shè)置響應(yīng)類型為圖片
        response.setContentType("image/png");
        // 將驗證碼圖片寫入響應(yīng)
        captcha.write(response.getOutputStream());
    }
}

訪問驗證碼接口

上面提到的5種樣式,效果如下:

參考資料:文檔

到此這篇關(guān)于Springboot整合hutool驗證碼的文章就介紹到這了,更多相關(guān)Springboot hutool驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一個通用的Java分頁基類代碼詳解

    一個通用的Java分頁基類代碼詳解

    這篇文章主要介紹了一個通用的Java分頁基類代碼詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • SpringBoot參數(shù)校驗之@Valid的使用詳解

    SpringBoot參數(shù)校驗之@Valid的使用詳解

    這篇文章主要通過示例為大家詳細介紹一下介紹了SpringBoot參數(shù)校驗中@Valid的使用方法,文中的示例代碼講解詳細,需要的可以參考一下
    2022-06-06
  • 完美解決gson將Integer默認轉(zhuǎn)換成Double的問題

    完美解決gson將Integer默認轉(zhuǎn)換成Double的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qgson將Integer默認轉(zhuǎn)換成Double的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 簡單實現(xiàn)Java驗證碼功能

    簡單實現(xiàn)Java驗證碼功能

    這篇文章主要為大家詳細介紹了簡單實現(xiàn)Java驗證碼功能的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 一文搞懂Spring中的注解與反射

    一文搞懂Spring中的注解與反射

    這篇文章主要為大家介紹了Spring中的注解與反射的原理與實現(xiàn),文中的示例代碼講解詳細,對我們了解Spring有一定的幫助,需要的可以參考一下
    2022-06-06
  • Java網(wǎng)絡(luò)編程之入門篇

    Java網(wǎng)絡(luò)編程之入門篇

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程入門,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Java Optional實踐(小結(jié))

    Java Optional實踐(小結(jié))

    這篇文章主要介紹了Java Optional實踐(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • SpringBoot項目中使用EasyPOI方式導(dǎo)出合同Word文檔的代碼實現(xiàn)

    SpringBoot項目中使用EasyPOI方式導(dǎo)出合同Word文檔的代碼實現(xiàn)

    本文介紹了如何使用EasyPOI庫在Java中導(dǎo)出Word合同文檔,通過模板驅(qū)動的方式,可以靈活地將動態(tài)數(shù)據(jù)填充到預(yù)設(shè)的Word模板中,生成格式規(guī)范的合同文件,重點講解了導(dǎo)入依賴、模板指令、制作模板和代碼實現(xiàn)等步驟,需要的朋友可以參考下
    2026-01-01
  • Spring中配置ContextLoaderListener方式

    Spring中配置ContextLoaderListener方式

    這篇文章主要介紹了Spring中配置ContextLoaderListener方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • spring?boot2升級spring?boot3的整體步驟流程

    spring?boot2升級spring?boot3的整體步驟流程

    從Spring Boot2到Spring Boot3的升級是一次全面而深刻的變革,它不僅帶來了技術(shù)棧的更新和新特性的引入,還顯著提升了應(yīng)用的性能和開發(fā)效率,這篇文章主要給大家介紹了關(guān)于spring?boot2升級spring?boot3的整體步驟,需要的朋友可以參考下
    2025-08-08

最新評論

新化县| 临沂市| 乌拉特中旗| 弥渡县| 凤庆县| 平顶山市| 高邮市| 宽甸| 吴堡县| 湘乡市| 井陉县| 鱼台县| 江都市| 宁明县| 乌拉特前旗| 贵南县| 襄汾县| 寿光市| 南江县| 深水埗区| 广昌县| 上思县| 陇西县| 鲜城| 集安市| 延津县| 桂东县| 黑水县| 福泉市| 镇原县| 沙湾县| 秦皇岛市| 扎赉特旗| 旌德县| 石狮市| 云梦县| 城口县| 兴业县| 沁阳市| 望奎县| 宁城县|