若依项目的启动

1、下载源码

git clone https://gitee.com/y_project/RuoYi-Vue.git

拉取代码、解压解压后

项目结构:

image-20230118103726802

2、项目依赖

1、前端的依赖

image-20230118104133352

2、后端的依赖

模块化:

image-20230118103920967

依赖:

image-20230118104007336

3、项目配置

1、前端配置

查看package.json 文件、能看到基本的依赖和配置、项目结构可以先不用看

npm install    安装依赖

2、后端配置

pom.xml 文件下载依赖

yaml文件进行修改

redis的配置修改

redis.host  改成自己的ip

mysql配置修改

1、url   
2、username
3、password   

4、启动

前端启动:

npm run dev 

后端启动

找到ruoyi-admin 模块、找到 RuoYiApplication 点击启动就可以

5、遇到问题

1、前端登录 验证码图片不展示

我的情况是:我把 yaml中的ruoyi 配置都删除了、验证码不能展示

通过debug 找到 、CaptchaController下面的

 @GetMapping("/captchaImage")
    public AjaxResult getCode(HttpServletResponse response) throws IOException
    {
        AjaxResult ajax = AjaxResult.success();
        boolean captchaEnabled = configService.selectCaptchaEnabled();
        ajax.put("captchaEnabled", captchaEnabled);
        if (!captchaEnabled)
        {
            return ajax;
        }

        // 保存验证码信息
        String uuid = IdUtils.simpleUUID();
        String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;

        String capStr = null, code = null;
        BufferedImage image = null;

        // 生成验证码
        //这里 会加载  yaml中的文件 获取math的验证码生产方式 我把yaml中注释了 这里报空
        String captchaType = RuoYiConfig.getCaptchaType();
        
        if ("math".equals(captchaType))
        {
            String capText = captchaProducerMath.createText();
            capStr = capText.substring(0, capText.lastIndexOf("@"));
            code = capText.substring(capText.lastIndexOf("@") + 1);
            image = captchaProducerMath.createImage(capStr);
        }
        else if ("char".equals(captchaType))
        {
            capStr = code = captchaProducer.createText();
            image = captchaProducer.createImage(capStr);
        }

        redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
        // 转换流信息写出
        FastByteArrayOutputStream os = new FastByteArrayOutputStream();
        try
        {
            ImageIO.write(image, "jpg", os);
        }
        catch (IOException e)
        {
            return AjaxResult.error(e.getMessage());
        }

        ajax.put("uuid", uuid);
        ajax.put("img", Base64.encode(os.toByteArray()));
        return ajax;
    }

2、登录无法成功

登录使用了spring-security、登录可以成功

找到system 下面的 SysLoginController 类、找到

    @PostMapping("/login")
    public AjaxResult login(@RequestBody LoginBody loginBody)
    {
        AjaxResult ajax = AjaxResult.success();
        // 生成令牌
        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
                loginBody.getUuid());
        ajax.put(Constants.TOKEN, token);
        return ajax;
    }

查看 loginService.login(xxx)方法的详情

    AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));  这行代码老是报错  注释掉就可以 

后来研究一下,是我把 yaml配置文件中的 国际化注释、放开就可以

# Spring配置
spring:
#   资源信息
  messages:
    # 国际化资源文件路径
    basename: i18n/messages

3、小结:

​ yaml不能随便删除、我的错误都是把配置删除、要有解决问题的能力、通过debug、可以阅读一下框架的代码、梳理项目流程

Logo

快速构建 Web 应用程序

更多推荐