阅读 63

若依 - RuoYi -快速开发 学习

若依一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。

性别男,若依是给女儿取的名字(寓意:你若不离不弃,我必生死相依)

若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
git 地址 https://gitee.com/y_project/RuoYi/tree/v4.6.1
学习地址:http://doc.ruoyi.vip/ruoyi/ 当然比我写的全

为啥用RuoYi  里面的html 版本,不是vue 版本和cloud 版本,因为对个人开发和网站开发还是比较好用的,
vue 版本会用其它的后台平台,下一个会有的。

Q:文档写的很清楚了,为啥还要自己写没有用的东西呢?
A:因为那毕竟是别人的,在这看了很多,没有记录下来,我永远之是看,可能连Shiro Hibernate Validation 怎么用都是不知道的,对自己有用,对他人希望也是个参考。

接着就学习步骤。

  • 1,先运行。

  • 2,再看源码。

  • 3,创建表。

  • 4,开发功能尝试。

运行步骤

先下载源码,下载他最新的版本,没有下载master 上面的,版本v4.6.1 可以下载

导入到idea 里面


Snipaste_2021-05-26_08-22-59.png

Snipaste_2021-05-26_08-23-12.png

然后在查看源码。。
我一直对sh 和bin 里面内容不解,有代码要这些干嘛。
sh 是linux 服务上运行的。
bin 是bat 是windows 开发用的。
clear 是删除包
package 是编译包
run 是允许 项目

里面内容就是

mvn clean package -Dmaven.test.skip=true
cd ../ruoyi-admin/target

set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m

java -jar %JAVA_OPTS% ruoyi-admin.jar

运行jar 的过程。。

修改配置文件,我只创建了本地数据库,修改了本地数据库地址。
run.bat

浏览器http://localhost/ 这个就可以了。。。

看doc 里面大体 就这些了内容了。他用的Eclipse 我用的idea。

基础部分sql 数据库部分。。

里面有一个pdm 结尾的 文件是通过PowerDesigner 来设计数据库的。
我打开看了一下。


Snipaste_2021-05-26_09-08-29.png


PowerDesigner  创建两个表。
然后导出sql
导入https://jingyan.baidu.com/article/ce436649c9a0887772afd32e.htm
参考这个,默认情况可以打开其他字段,和修改默认值https://blog.csdn.net/lgw_999/article/details/82822245


Snipaste_2021-05-26_09-29-46.png

Snipaste_2021-05-26_11-08-08.png

Snipaste_2021-05-26_10-58-16.png

然后开始使用 若依app 。
导入sql ,启动 若依项目。。。

Snipaste_2021-05-26_11-12-17.png

Snipaste_2021-05-26_11-12-51.png

开始创建新的项目了。。。

创建maven 项目。。。ruoyi-app


Snipaste_2021-05-26_11-47-57.png

然后从后台里面下载源码,然后放到项目里面

然后在配置好menu 菜单之后,才可以进行重新启动项目。


Snipaste_2021-05-26_11-46-28.png

就是这样的情况了。。。
发送了错误了,就是 主键没有写自增加 修改就好了。。

还是觉得Navicat Premium 15 设计sql 还是较为习惯。。。
然后开始修改逻辑了。

最后修改把这俩个界面合并到一起,然后在进行 进入。记录表里面是app 上传的不同版本的。
写一个更新版本的接口,供app调用和使用。。


Snipaste_2021-05-26_11-46-28.png

Snipaste_2021-05-27_09-27-14.png

http://localhost/swagger-ui.html

可以进行接口调试使用。。

步骤结束。。。

开始收集好的使用了。

学习这个太痛苦了,例如shiro 我觉得得写一些代码才可以。。
1,Shiro 部分

 /**
     * 授权
     */
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0)
    {
        SysUser user = ShiroUtils.getSysUser();
        // 角色列表
        Set<String> roles = new HashSet<String>();
        // 功能列表
        Set<String> menus = new HashSet<String>();
        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        // 管理员拥有所有权限
        if (user.isAdmin())
        {
            info.addRole("admin");
            info.addStringPermission("*:*:*");
        }
        else
        {
            roles = roleService.selectRoleKeys(user.getUserId());
            menus = menuService.selectPermsByUserId(user.getUserId());
            // 角色加入AuthorizationInfo认证对象
            info.setRoles(roles);
            // 权限加入AuthorizationInfo认证对象
            info.setStringPermissions(menus);
        }
        return info;
    }

setRoles和setStringPermissions 这个俩个都是非常不好,得看api。光看着,只能记住它。

然后在去获取他,还得在看表结构。。。
在去梳理一下。。。

2,Schedule 这个会自己启动的,

/**
     * 立即运行任务
     * 
     * @param job 调度信息
     */
    @Override
    @Transactional
    public void run(SysJob job) throws SchedulerException
    {
        Long jobId = job.getJobId();
        SysJob tmpObj = selectJobById(job.getJobId());
        // 参数
        JobDataMap dataMap = new JobDataMap();
        dataMap.put(ScheduleConstants.TASK_PROPERTIES, tmpObj);
        scheduler.triggerJob(ScheduleUtils.getJobKey(jobId, tmpObj.getJobGroup()), dataMap);
    }

3, 热部署 调试

Snipaste_2021-05-28_11-15-27.png


Snipaste_2021-05-28_11-15-37.png


https://blog.csdn.net/qq_31024823/article/details/82020791
html 页面调试挺好的。


成果展示

自己一个版本更新应用模块


Snipaste_2021-06-03_15-24-51.png

Snipaste_2021-06-03_15-25-09.png

Snipaste_2021-06-03_15-24-51.png

Snipaste_2021-06-03_16-24-59.png

大体完成app 管理界面。



作者:客观开发者
链接:https://www.jianshu.com/p/e6d4c6c7a9c4


文章分类
后端
文章标签
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 gxwowoo@163.com 举报,一经查实,本站将立刻删除。
相关推荐