若依框架是什么?
其实就是一套后台管理系统,它采用了Spring Boot和Shiro安全控制框架,以及Thymeleaf模板。
Spring Boot是一个基于Spring开发的框架,它继承了Spring原有的功能特性,并且简化了Spring应用的搭建。解决了依赖包的版本冲突,摈弃了Spring的不稳定性。Spring Boot整合了很多优秀的框架,不用我们自己手动的去写纷繁复杂的xml配置,然后进行配置。针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置,只需告诉Spring Boot需要什么功能,它就能引入需要的库。数据库、前端、后端应有尽有,还可以在代码基础上自行扩展,支持权限控制!重复的增删、改查很耗时费力,用若依可视化的代码生成器,生成基础代码,广大攻城狮们只需写代码就能完成整体应用程序,无需传统项目构建。仅需按照以下步骤操作:
第一步,数据库创建表,加上相应注释(注意是表的注释)。
第二步,登陆若依导入表。
第三步,编辑相应的信息:各字段的插入、编辑、列表页、是否要查询,页面显示的文本框、下拉列表还是按钮。基本信息的表名、作者、类名的设置。生成信息的文件路径、业务名、相应的包等。
第四步,将生成的文件放入相应的位置。
若依使用的安全框架是什么呢?
一篇适合小白的Shiro教程_潮汐先生的博客-****博客
当然,再好的软件,也需要安全保证。Shiro,它就是若依的一个强大易于使用的安全框架。具备认证、授权、加密、缓存等功能。认证通常是指用户身份识别,俗称用户登录;授权即为权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;加密,是保护数据的安全性,保护或者隐藏数据防止被偷窃,如密码加密存储到数据库,而不是明文存储;缓存:用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率。对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。例:处理一个Subject流程图
若依采用的模板又是什么呢?
Thymeleaf模板,这是一个用于Web和Java的模板引擎,可轻松与Spring MVC等Web框架,进行集成作为Web应用的模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本,并且能直接在浏览器打开并正确显示模板页面,不需要启动整个Web应用。Thymeleaf的可扩展性很强。,可以用它定义自己的模板属性集合,从而计算自定义表达式并使用自定义逻辑。这就意味着Thymeleaf还可以作为模板引擎框架。其最大的特点是:以自然模板的概念为基础,将其逻辑注入模板文件,提供一种可维护的模板创建方式。为实现这一目标,它其方式不会影响模板被用作设计原型。缩小了设计和开发团队之间的差距,设计沟通更加顺畅。
综上,若依框架在我们软件开发过程中发挥着重要作用。最重要的一点就是:规范了软件开发的基本框架,模块化,减少返工,提高效率。项目规范贯穿整个流程,项目开发工程结束了,还不算真正意义上的完工,毕竟还有后期维护、二期开发,当然其中不乏前任离职,后面同事再接手的情况,如何迅速了解规范,传承规范?这时,框架就起到一个规范的作用,可以让我们能在最短的时间内,掌握最多的数据,灵活删减、增加,更新、修改方案,少走弯路,事半功倍。
架构图
========================================================================
前期准备工作
1.电脑上JDK 、Maven、Mysql、Node、IDEA、Git这些基本的开发环境必备已经安装完成。
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0 (ruoyi-cloud >= 3.0.0需要下载nacos >= 版本)
sentinel >= 1.6.0
2.项目需要连接Redis,所以需要在本机安装Redis服务端:
Windows中Redis的下载安装与修改密码并启动:
Windows中Redis的下载安装与修改密码并启动_霸道流氓气质的博客-****博客
注意:因为首页验证码是存储在Redis中,你尝试不启动Redis你就会发现首页没有图形验证码
3.项目需要Nacos并需要持久化到Mysql数据库。
Nacos简介、下载与配置持久化到Mysql:
Nacos简介、下载与配置持久化到Mysql_霸道流氓气质的博客-****博客
注意这里的持久化连接的数据库是Nacos所带的初始化的数据库,这里需要连接若依的数据库,所以只需要在本地配置好Nacos,等待若依的数据库新建完成再连接若依的数据库。
拉取项目代码
项目地址:
RuoYi-Cloud: ???? 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本
复制链接,点击IDEA上面的VCS选择【Get From Version Control...】
将Ruoyi-Cloud的链接复制进去,点击确定。
选择Trust Project【相信项目】
等待代码全部克隆到本地IDEA中,项目目录如下
初始化数据库
在上面下载的源码的sql文件夹下有三个sql文件
打开Navicat连接本地Mysql数据库
新建数据库ry-cloud,然后在此数据库下执行ry_20220814.sql和这两个sql文件。
注意:别执行错了。
上面的数据是系统运行时的一些基础数据。
然后再新建数据库ry-config,在此数据库下执行ry_config_20220510.sql这个sql文件。
注意:这也是最容易出错的一个步骤,这个数据库的作用就是在nacos启动后去ry-config中读取配置信息,下面的nacos配置一定要按照我写的格式进行配置,不然就会出现nacos访问不到。
这个数据库就是前面nacos进行数据持久化到Mysql数据库的数据库。
配置Nacos持久化到数据库
来到Nacos的解压目录下的conf下的文件中,【找到自己的nacos安装目录】
将连接到外置本地数据库的代码去掉注释并修改为
自己的数据库和用户名和密码【跟图片中进行一一比对,并且跟自己有关的就相应的改变一哈】
注意:这也是最容易出错的一个步骤,这个数据库的作用就是在nacos启动后去ry-config中读取配置信息,下面的nacos配置一定要按照我写的格式进行配置,不然就会出现nacos访问不到。
找到nacos下的bin目录下的【nacos启动脚本】
修改启动模式为:standalone 。
然后参照上面的博客启动Nacos【点击nacos/bin/进行启动】
直接复制上面那个链接也行, 打来浏览器输入:
http://localhost:8848/nacos
也行。
nacos首页:登录的用户名和密码都为nacos
登录成功之后
此时项目中的所有的配置文件都会显示,然后从上往下挨个编辑,把设计到连接Mysql和Redis的所有地方,改为自己对应的用户名和密码。
以网关的配置文件为例
将redis改为自己的端口和密码,点击发布即可。
同样的以认证的配置文件
将redis和mysql都修改为自己所对应的。
后端项目启动
在启动后端项目之前,你需要本地启动Redis服务端,以及Nacos
然后在IDEA中找到
ruoyi-gateway下的启动类RuoYiGatewayApplication启动
ruoyi-auth下的启动类RuoYiAuthApplication启动
ruoyi-modules下的ruoyi-system下的RuoYiSystemApplication并启动
如果这三个模块都没有报错则后端启动成
并且可以在Nacos中发现这三个服务
前端项目启动
前端项目的位置在ruoyi-ui下
右击此项目-Open in Terminal,输入
npm install
安装项目依赖,然后
npm run dev
运行前端项目
默认端口应该是80端口,这里80端口被占用,所以运行在了81端口
打开浏览器输入实际运行时输出的端口
http://localhost
输入验证码点击登录
至此微服务版开发环境部署成功。
=================================
可能遇到的问题。
如果你在若依新加的模块【例如ruoyi-purchase】
你要在nacos中的中进行配置路由,而且要在nacos配置文件中新加一个【内容复制进行相应的修改】
举例:
ruoyi-purchase的配置文件配置服务名
新增的路由【模仿,不是照抄】,下面basic就是另一个新增的模块
在nacos配置文件中新加一个【内容复制进行相应的修改】