当前位置: 首页 > news >正文

男女明星直接做的视频网站黄石网站建设价格

男女明星直接做的视频网站,黄石网站建设价格,家居企业网站建设咨询,wordpress首页tag标签调取1.获取图形验证码接口 功能要求 1、随机生成6位字符 2、将字符生成base64位格式的图片#xff0c;返回给前端 3、将生成的字符存储到redis中#xff0c;用匿名身份id#xff08;clientId#xff09;作为key#xff0c;验证码作为value。 clientId通过/login/getClien… 1.获取图形验证码接口 功能要求 1、随机生成6位字符 2、将字符生成base64位格式的图片返回给前端 3、将生成的字符存储到redis中用匿名身份idclientId作为key验证码作为value。 clientId通过/login/getClientId接口获取 4、验证码15分钟后过期 依赖包 !-- 工具类 -- dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.10/version /dependency!-- redis -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactIdversion2.7.5/version /dependency redis缓存配置并完善图形验证码接口  # redis配置 redis:database: 0port: 6379lettuce:pool:#连接池中最大空闲连接数为 30。这意味着连接池可以保持最多 30 个空闲的 Redis 连接以便在需要时重用。max-idle: 30#连接池中最小空闲连接数为 10。这表示连接池至少会保持 10 个空闲连接以便在需要时快速获取可用连接。min-idle: 10#连接池中的最大活动连接数为 30。这是指连接池在同一时间可以支持的最大活动使用中连接数量。max-active: 30#当连接池已用尽且达到最大活动连接数时从连接池获取连接的最大等待时间为 10,000 毫秒10 秒。如果在等待时间内没有可用连接将抛出连接超时异常。max-wait: 10000# 应用程序关闭时Lettuce 将等待最多 3 秒钟来完成关闭操作。如果超过这个时间仍未完成则会强制关闭连接。shutdown-timeout: 3000host: 127.0.0.1 RedisTemplateDefaultConfig.java  package com.bage.common.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;/*** Redis Template 配置**/ ConditionalOnProperty(prefix sys,name redis-template-config,havingValue true) Configuration Slf4j public class RedisTemplateDefaultConfigT {/*** redisTemplate相关配置** param factory* return*/Beanpublic RedisTemplateString, T redisTemplate(RedisConnectionFactory factory) {log.info(RedisTemplateConfig init start ...);RedisTemplateString, T template new RedisTemplate();// 配置连接工厂template.setConnectionFactory(factory);//使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值默认使用JDK的序列化方式Jackson2JsonRedisSerializerObject jacksonSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om new ObjectMapper();// 指定要序列化的域field,get和set,以及修饰符范围ANY是都有包括private和publicom.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);jacksonSerializer.setObjectMapper(om);// 值采用json序列化template.setValueSerializer(jacksonSerializer);// 使用StringRedisSerializer来序列化和反序列化redis的key值template.setKeySerializer(new StringRedisSerializer());// 设置hash key 和value序列化模式template.setHashKeySerializer(new StringRedisSerializer());template.setHashValueSerializer(jacksonSerializer);template.afterPropertiesSet();log.info(RedisTemplateConfig init end);return template;} } LoginController.java import com.bage.finance.biz.dto.form.GetBase64CodeForm; import com.bage.finance.biz.service.MemberLoginService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** author 啟王朝* date2024/6/6 18:24*/ Api(tags 用户登录模块) RestController RequestMapping(/login) RequiredArgsConstructor /** RequiredArgsConstructor final* 作用 可以省略 Autowired 和 Rescuorce 需要注入包的前面必须加上final*/ Slf4j public class LoginController {final MemberLoginService memberLoginService;// 获得游客登录的getClientIdApiOperation(value 获取客户端id)GetMapping(/getClientId)public com.bage.common.dto.ApiResponseString getClientId() {String clientId memberLoginService.getClientId();return com.bage.common.dto.ApiResponse.success(clientId);}/*** 作用*/ApiOperation(value 生成base64位格式的图片)GetMapping(/getBase6Code)/*** 作用 GetBase64CodeForm form 是将生成的字符存储到redis中用匿名身份idclientId作为key验证码作为value。* 0*/// Validated 必须加统一拦截才能起作用public com.bage.common.dto.ApiResponseString getBase64Code(Validated ModelAttribute GetBase64CodeForm form) {// 返回的是code 为Base64的验证码图片String code memberLoginService.getBase64Code(form);return com.bage.common.dto.ApiResponse.success(code);} } MemberLoginService.java import com.bage.finance.biz.dto.form.GetBase64CodeForm;/*** Author啟王朝* nameMemberLoginService* Date2024/6/6 18:18* FilenameMemberLoginService*/ public interface MemberLoginService {// 获取客户端idString getClientId();/*** 作用获得Base64的图形编码*/String getBase64Code(GetBase64CodeForm form); }MemberLoginServiceImpl.java  import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; import com.bage.finance.biz.dto.form.GetBase64CodeForm; import com.bage.finance.biz.service.MemberLoginService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service;import java.util.UUID; import java.util.concurrent.TimeUnit;import static com.bage.finance.biz.constant.RedisKeyConstant.GRAPHIC_VERIFICATION_CODE;/*** author 啟王朝* date2024/6/6 18:19*/ Service Slf4j RequiredArgsConstructor // 构造参数的注解 public class MemberLoginServiceImpl implements MemberLoginService {final RedisTemplateString, String redisTemplate;/*** Date获取客户端id // date变量下面会用内置函数进行赋值* Author* return*/Overridepublic String getClientId() {return UUID.randomUUID().toString().replace(-, );}/*** 作用获取图形验证码界面*/Overridepublic String getBase64Code(GetBase64CodeForm form) {// TODO CaptchaUtil 用工具形成验证码图片/*** 作用* dependency* groupIdcn.hutool/groupId* artifactIdhutool-all/artifactId* version5.8.10/version* /dependency* 300,192代表长和宽 5 代表5个字符 lineCount的数字越大代表的数字越模糊 1000*/LineCaptcha lineCaptcha CaptchaUtil.createLineCaptcha(300, 192, 5, 1000);// 将验证码内容读出来String code lineCaptcha.getCode();// todo 将验证码保存到redis中redisTemplate.opsForValue().set(GRAPHIC_VERIFICATION_CODE form.getClientId(), code,15, TimeUnit.MINUTES);// 返回base64的图形验证码return lineCaptcha.getImageBase64();} }
http://www.eeditor.cn/news/121750/

相关文章:

  • 云尚网络科技有限公司搜索排名广州seo团队
  • 网站建设与网页设计试卷广州app设计公司
  • 徐州专业网站制作公司嘉兴企业网站模板建站
  • 建站点代驾软件开发流程
  • 温州网站制作系统东莞企业营销型网站建设
  • 网站服务器数据迁移网站建设和网站
  • 合肥建设局网站首页短期网站建设培训班
  • 高端企业门户网站建设费用网站建设费分录
  • 电商网站构建国内crm系统哪家好
  • 棋牌游戏网站建设费用哪里有专业网站建设公司
  • 网站里面的数据库是怎么做的wordpress悬浮按钮插件
  • 做彩票的网站网站开发并发 性能
  • html5 房地产网站案例wordpress修改社交
  • 淘宝手机网站模板下载安装新闻头条最新消息今天发布
  • 百度官方网站登录上海电商网站设计
  • 网站认证打的钱怎么做分录北京正规网络运营设计培训
  • ps做 网站标准尺寸一号网站建设网站制作
  • 网站模板受法律版权保护吗南阳网站排名优化费用
  • 国外优质网站视频网站
  • 建设工程安全信息网镇江seo
  • 怎么在网站上做推广如何下载ppt免费模板
  • 优秀网站建设网页做彩票网站违法的吗
  • 哈尔滨网站优化网站建设的威胁
  • 建设银行融信通网站我爱做衣服网站
  • 昆明网站制作游戏钓鱼网站怎么做
  • 水产网站模板wordpress 企业模板 免费
  • 阿里邮箱企业版官网网站做优化需要哪些后台信息
  • 江苏公司网站建设效果图网站有哪些
  • 京东商城官方网站品牌营销推广代运营
  • 江西做网站找谁百度seo 站长工具