0
点赞
收藏
分享

微信扫一扫

若依 - RuoYi -快速开发 学习

承蒙不弃 2021-09-19 阅读 73
spring

若依一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的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 里面


然后在查看源码。。
我一直对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 来设计数据库的。
我打开看了一下。


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

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

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

创建maven 项目。。。ruoyi-app


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

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


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

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

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


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, 热部署 调试



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

成果展示

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


大体完成app 管理界面。
代码

举报

相关推荐

0 条评论