基于Jfinal实现的权限管理系统 JfinalUIB JfinalUIB 是 Jfinal + charisma + beetl + postgresql(同时支持MySQL) + ehcache + ztree + druid + bcprov 实现的用户权限管理系统 ;

JfinalUIB 是 Jfinal + charisma + beetl + postgresql(同时支持MySQL) + ehcache + ztree + druid + bcprov 实现的用户权限管理系统 ;

项目用到了众多的开源组件,还有一些是分享的学习代码片段首先感谢他们!!!

项目背景:

14年5月份学习jfinal的时候出于练手的目的开发的

受益人群:

  1. 对于初学jfinal和beetl的同行们来说算是很全面的demo工程

  2. 对于初学权限设计的人来说也算是个最简洁的权限实现

  3. 你也可以基于它来做项目,它只是做了一些绝大部分项目都应该做的一些基础功能

能学习到哪些东西:

  1. 比较全面的基于URL权限控制和实现

  2. 怎么整合jfinal + beetl,beetl的使用,注册Function和调用,再就是对beetl扩展计算视图耗时

  3. 怎么自己实现分页、动态条件的查询

  4. jfinal的HandlerInterceptor使用,全局异常和错误机制的处理

  5. charisma ui的使用和扩展,改造后,支持基于jqueryform的Ajax交互,自带弹出框的使用,表单数据校验

  6. ztree的详细使用方法,有简单的树形展示,单选多选的使用,默认选中效果的实现,复杂的树操作有还有部门+人员组合,模块+功能组合

  7. 基于bcprov的密码加密和存储

  8. druid的使用和配置

  9. zxing处理条码的识别和生成,包括带logo的二维码

代码解读:

JfinalUIB 代码笔记 (1)--- jfinal 乐观锁 http://my.oschina.net/dongcb678/blog/278436
JfinalUIB 代码笔记 (2)--- jfinal中视图耗时计算 http://my.oschina.net/dongcb678/blog/278450
JfinalUIB 代码笔记 (3)--- jfinal Controller全局参数封装 http://my.oschina.net/dongcb678/blog/278695

功能介绍:

1. 系统实现了基于URL的权限管理,页面操作控制到按钮级别,根据权限配置进行显示,并在拦截器再次认证,只有分配权限后才能进行操作

2. 所有的URL访问都进行了详细的日志记录,包括action耗时、视图耗时、总耗时,不管是访问成功还是失败,或者有没权限,在日志表都详细记录

3. 基于charisma的UI进行了二次扩展,实现了表单数据校验,单页面Ajax请求(基于jqueryform,它本身的支持很局限)

代码地址:

http://git.oschina.net/dongcb678/JfinalUIB.git

https://code.jd.com/dongcb678/JfinalUIB.git


安装配置:

1.直接解压导入eclipse

2.导入数据库文件

    2.1 PostgreSQL
          /doc/数据库/PostgreSQL/jfinaluib.backup , pgAdmin III 新建个库右键恢复备份文件;
          public.sql文件是Navicat Premium导出的一份完整文件,也可以用Navicat Premium恢复;
     2.2 MySQL
          /doc/数据库/MySQL/jfinaluib.sql,是Navicat Premium导出的一份完整文件,也可以用Navicat Premium恢复

3.修改/WEB-INF/init.properties 根据db.type的值修改对应的数据库连接信息

4.启动项目

5.访问入口http://127.0.0.1:89/jf/login 
用户名:admins 
密码:000000 六个零

6.代码说明:

A.权限设计流程:两条线 
一是用户–》分组–》角色–》功能 
二是用户–》岗位–》功能

B.在beetl方面主要重写了BeetlRender和BeetlRenderFactory实现视图耗时的计算功能, 
通过handle得到总耗时减去视图耗时,得到action耗时

C.所有的基础数据都在ehcache做了缓存,比如用户、分组、角色、功能、岗位等等, 
主要是在ParamInit类,项目启动进行缓存,其它只要涉及到缓存数据的操作会同步更新缓存





猜你喜欢

转载自blog.csdn.net/qq_38316721/article/details/80363281