若依-vue 前后端分离项目分析-验证码、redisCache、@PostConstruct

本文介绍了RuoYi-Vue项目的验证码功能,探讨了如何根据sys.account.captchaOnOff标记从Redis缓存中获取验证码状态,并详细讲解了利用@PostConstruct注解进行初始化操作。同时,文章阐述了验证码的生成、存储以及RedisCache的相关配置,包括验证码的有效期和在Redis中的存储方式。
摘要由CSDN通过智能技术生成

项目地址:https://gitee.com/y_project/RuoYi-Vue

获取验证码 package com.ruoyi.web.controller.common;

先获取到一个成功的全局返回值 ajax

判断验证码是否打开 captchaOnOff

public AjaxResult getCode(HttpServletResponse response) throws IOException
{
   
    AjaxResult ajax = AjaxResult.success();
    boolean captchaOnOff = configService.selectCaptchaOnOff();
    ajax.put("captchaOnOff", captchaOnOff);
    if (!captchaOnOff)
    {
   
        return ajax;
    }

    // ...
}

selectCaptchaOnOff方法:
@Override
public boolean selectCaptchaOnOff()
{
   
    String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff");
    if (StringUtils.isEmpty(captchaOnOff))
    {
   
        return true;
    }
    return Convert.toBool(captchaOnOff);
}

selectConfigByKey方法:
@Override
public String selectConfigByKey(String configKey)
{
   
    String configValue = Convert.toStr(redisCache.getCacheObject(getCacheKey(configKey)));
    if (StringUtils.isNotEmpty(configValue))
    {
   
        return configValue;
    }

    SysConfig config = new SysConfig();
    config.setConfigKey(configKey);
    SysConfig retConfig = configMapper.selectConfig(config);
    if (StringUtils.isNotNull(retConfig))
    {
   
        redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
        return retConfig.getConfigValue();
    }
    return StringUtils.EMPTY;
}

getCacheKey方法:
private String getCacheKey(String configKey)
{
   
    return CacheConstants.SYS_CONFIG_KEY + configKey;
}

CacheConstants.SYS_CONFIG_KEY内的值是 sys_config:"

先从缓存中取 sys.account.captchaOnOff标记,如果缓存中有标记就直接返回。

缓存中 sys.account.captchaOnOff 标记的来源

@Service
public class SysConfigServiceImpl implements ISysDictTypeService
{
   
    @PostConstruct
    public void init()
    {
   
        loadingConfigCache();
    }

    @Override
    public void loadingConfigCache()
    {
   
        List<SysConfig> configsList = configMapper.selectConfigList(new SysConfig());
        for (SysConfig config : configsList)
        {
   
            redisCache.setCacheObject(getCacheKey(config.getConfigKey()), config
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值