若依项目启动前后端分离版本

news2024/11/15 10:51:39

若依项目的启动

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、可以阅读一下框架的代码、梳理项目流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/171195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Kubernetes】 从基础认识 k8s核心pod相关概念

基础 提示:此篇帮助朋友们,养成从0到1不断延伸知识的一种方法 最简单的创建pod入手 访问官方文档,直接使用案例,进行修改即可! 官网地址:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/删除不需要的部分,根据规则添加需要的参数…

[oeasy]python0053_ 续行符_line_continuation_python行尾续行

续行符与三引号 回忆上次内容 上次还是转义序列 类型英文符号\abell响铃\bbackspace退格\ttab水平制表符\vvertical tab垂直制表符换行不回车\\backslash反斜杠\"double quote双引号\’single quote单引号\xhh具体字符输出(hh)16 进制对应的ascii 字符\ooo具体字符输出…

TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发

小 T 导读:TDengine 是专为时序数据而研发的大数据平台,存储和计算都针对时序数据的特点量身定制,在支持标准 SQL 的基础之上,还提供了一系列贴合时序业务场景的特色查询语法,极大地方便了时序场景的应用开发。TDengin…

Java 里面 @InitBinder注解的使用原理

目录 1 @InitBinder注解作用1.1绑定同属性多对象1.2 类型转换2 总结1 @InitBinder注解作用 1.1绑定同属性多对象 第一个作用: 绑定同属性多对象 什么意思,就是有一个接口,参数是两个实体类,这两个实体类里面的属性名称还是一样,那么前端给这个接口传值的时候,哪个参数…

JavaEE day3 初识web与HTML 2

HTML HTML: 1.由标签(tag)组成的一棵树形结构,由于标签处于一棵树上,有时候也用元素(element)或者结点(node)表示 2.基本结构:html包括head与body两部分&a…

HummerRisk V0.9.0:增加RBAC 拓扑图,云检测、漏洞、主机等模块增加规则

HummerRisk V0.9.0发布:增加RBAC 资源拓扑图,首页新增检查的统计数据,云检测、漏洞、主机等模块增加规则,对象存储增加京东云,操作审计增加金山云,镜像仓库新增设置别名。 感谢社区中小伙伴们的反馈&#…

40 个定时任务,带你理解 RocketMQ 设计精髓!

大家好,我是君哥。今天来分享 RocketMQ 的定时任务。通过这些定时任务,能让我们更加理解 RocketMQ 的消息处理机制和设计理念。从 RocketMQ 4.9.4 的源代码上看,RocketMQ 的定时任务有很多,今天主要讲解一些核心的定时任务。1 架构…

智云通CRM:如何做好销售复盘,提升业绩?

我们在销售拜访中经常听见客户这样说:“不好意思啊,洛经理,我最近没有时间,等过一段时间不忙了,我们再约。”“洛经理,谢谢你大老远跑一趟,给我介绍这个产品。我很满意,不过我需要和…

RPC框架泛调用原理及转转的实践

RPC框架泛化调用功能在网关、接口测试等场景下有着广泛的需求,本文给各位读者介绍一下主流的泛化调用实现方式及原理,比较各种实现方案的优缺点,并分享泛化调用在转转的实践。一方面有助于RPC框架使用方理解泛化调用,更好地使用泛…

论文投稿指南——中文核心期刊推荐(原子能技术)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

spring mvc配置类简介及放静态资源释放

配置文件ApplicationContext.xml 基于spring的项目资源都是通过DispatcherServlet作为拦截器,DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求&#xff0…

JS中Math.random()方法的使用总结

🔥 前言 Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。下面就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的随机数。 &#x1f525…

位运算__

异或运算相同为0,不同为1,相当于无进位相加0 ^ N NN ^ N 0异或运算满足交换律和结合律一、打印一个数的二进制题目打印一个数的二进制代码package bitoperation;public class PrintBinary {public static void printBinary(int num) {for (int i 32; …

代码重构之路 --我的2022年总结

2022年是我正式参加工作的第10个年头,也是我在CSDN上写博客的第11个年头。在这10余年的时间里,虽然在工作上遇到了各种情况,但我一直坚持输出、坚持分享,一共在CSDN上发表了530多篇原创博文。在这些文章中,大部分都是与…

论文投稿指南——中文核心期刊推荐(能源与动力工程)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

一篇五分生信临床模型预测文章代码复现——Figure 4-6 临床模型构建(八)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

gateway整合sentinel限流不生效排查

问题 线上的sentinel 在测试压测时候可以正常被限流 但是在正常的流量中 发现被限流的接口很少 (我发誓肯定都配置了限流规则) 约定 文中的 服务名称以及地址 都被改写了 排查步骤 1.检查相关配置 以及 pom依赖配置 发现SentinelGatewayFilter 重复…

[论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

【iOS】—— 内存的五大分区

内存的五大分区 文章目录内存的五大分区五大分区分别是1.栈区优点:2.堆区优点:3.常量区4.静态区5.代码区static、extern、const关键字比较1.static关键字static关键字作用:全局静态变量局部静态变量2.extern全局变量对内的全局变量外部全局变…

25.Isaac教程--Carter机器人

Carter机器人 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html Carter 是一个机器人平台,使用 Segway 的差分底座、用于 3D 范围扫描的 Velodyne P16、ZED 相机、IMU 和 Jetson TX2 作为系统的核心。 与定制安装支架一起,它…