🧑💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战
系列文章目录
以下是专栏部分内容,更多内容请前往专栏查看!
标题一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)一张思维导图带你学会Springboot创建全局异常、自定义异常一张思维导图带你打通SpringBoot自定义拦截器的思路28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署一张流程图带你学会SpringBoot结合JWT实现登录功能一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存一张思维导图带你学会SpringBoot使用AOP实现日志管理功能
专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。
链接>>>>>>>
《图解RabbitMQ》
文章目录
🌟引入依赖
首先引入Kaptcha的starter依赖
<dependency><groupId>com.baomidou</groupId><artifactId>kaptcha-spring-boot-starter</artifactId><version>1.1.0</version></dependency>
🌟验证码配置类
/**
* 图形验证码配置类
*/@Configuration@Slf4jpublicclassCaptchaConfig{/**
* 验证码配置
* @return
*/@Bean@Qualifier("captchaProducer")publicDefaultKaptchakaptcha(){DefaultKaptcha kaptcha =newDefaultKaptcha();Properties properties =newProperties();//验证码个数
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");//字体间隔
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");//干扰实现类
properties.setProperty(Constants.KAPTCHA_NOISE_IMPL,"com.google.code.kaptcha.impl.NoNoise");//图片样式
properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL,"com.google.code.kaptcha.impl.WaterRipple");//文字来源
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING,"0123456789");Config config =newConfig(properties);
kaptcha.setConfig(config);return kaptcha;}}
🌟controller
主要步骤如下:
- 1.生成验证码字符串
- 2.生成图形形式验证码
- 3.输出到客户端
- 4.关闭流
@RestController@RequestMapping("/user")@Slf4jpublicclassUserController{@AutowiredprivateProducer producer;/**
* 生成图形验证码
* 1.生成验证码字符串
* 2.生成图形形式验证码
* 3.输出到客户端
* 4.关闭流
* @param request
* @param response
*/@GetMapping("captcha")publicvoidgetCaptcha(HttpServletRequest request,HttpServletResponse response){//生成字符串验证码String code= producer.createText();//创建图形验证码BufferedImage image=producer.createImage(code);try{//写到浏览器,向客户端发送数据ServletOutputStream outputStream=null;//获取输出流
outputStream=response.getOutputStream();ImageIO.write(image,"jpg",outputStream);
outputStream.flush();
outputStream.close();}catch(IOException e){
e.printStackTrace();}}
🌟ServletOutputStream
作用:用户向客户端发送二进制数据。提供了字节数据写入响应输出流的方式,用于生成和发送动态内容或者文件的响应。
应用场景:
- 向客户端发送图像、音频或者视频媒体文件。
- 生成发送PDF、EXCEL等等二进制文件。
- 将二进制数据流式传递给客户端。
使用步骤:
- 通过HttpservletRespon获取输出流getOutputStream。
- 通过ImageIO.write将图像写入到输出流中。
- 缓冲输出流。
- 关闭输出流。
🌟效果
🌟写在最后
有关于SpringBoot整合Kaptcha实现验证码到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。
版权归原作者 DaenCode 所有, 如有侵权,请联系我们删除。