JBolt源码解析课程001-模块分包结构

源码截图

JBolt源码分包截图

说明:JBolt开发平台,整体采用Maven工程构建,单个构成,模块通过package划分,并未采用父子Maven工程和多Moudle工程。

当然,这是目前JBolt为了照顾更多的新手快速上手,更快的开发中小项目,因为很多人Maven用的不熟悉,如果是在Eclipse里 基本不会Maven 也能依赖插件搞定开发和打包。

一、cn.jbolt._admin

此包下的内容是,整个JBolt开发平台提供弄的后台管理核心业务包。

package包说明:

cn.jbolt._admin.demo:自定义前端组件自动化演示demo
cn.jbolt._admin.dictionary: 数据字典管理 数据字典可以分多级,配合自动Select 自动 radio和自动checkbox组件 ,可以非常方便的零JS 实现很多页面效果。
cn.jbolt._admin.globalcofig: 全局配置表,配置一些全局数据和全局缓存数据,比如系统的名字,LOGO,版权信息等。
cn.jbolt._admin.jboltfile:JBolt平台系统文件库,所有上传文件都保存一条记录在这里,例如电商模块中的图片上传,最后都会调用JBoltFile的Service方法去保存记录。这样后面会有提供文件库管理和从文件库里选择图片的能力,比如在公众平台管理模块中的回复内容设置,图文消息的图片可以从同步后的微信素材库选择,也可以从JBoltFile文件库里选择。
cn.jbolt._admin.systemlog:是系统的操作日志记录模块 SystemLogService里提供了日志添加记录的封装,各个业务service里都有调用。同时BaseService里也提供了快速调用的封装。

cn.jbolt._admin.updatemgr:是一个demo 拥有完整的CURD操作 列表管理 日志管理等逻辑代码和UI 开发其它基础模块可以直接复制源码修改使用。

cn.jbolt._admin.interceptor, cn.jbolt._admin.permission, cn.jbolt._admin.role, cn.jbolt._admin.rolepermission, cn.jbolt._admin.user 是JBolt的权限管理解决方案。
其中User是后台管理登录用户信息,在User上可以配置用户的角色Role,目前JBolt里的用户对应角色是一对多,一人多角色,每个角色Role上可以设置这个角色享受的资源访问权限-Permission。角色Role和资源权限定义Permission之间通过rolePermission中间关联。

上面这些都是基础设置,最终实现权限多角色合并去重,权限判断,通过与否通过拦截器-Interceptor,拦截当前登录用户,从Session和Cache里拿到用户身上绑定的角色和合并后的权限,判断是否跟当前访问的接口action上的权限定义有交集,没有就提示无权。

二、cn.jbolt.common

这个包下内容是整个JBolt平台中的公用部分
cn.jbolt.common.bean:JBolt平台里使用的JavaBean定义,有jstree的javaBean,有自动Select,自动Radio,自动Checkbox使用的数据源Option接口和Bean定义等。
cn.jbolt.common.confg:整个系统的公用配置信息都在这里了,JBolt的JFinalConfig,GlobalConfigKey:全局配置的key定义。Msg全局返回消息定义,PageSize 各个使用场景用的分页PageSize定义。
cn.jbolt.common.directive:JBolt平台中的自定义指令,例如div区域内容异步加载指令AjaxPortal、
在前端HTML模板中,使用的页面读取全局配置表的GlobalConfig指令、做角色和权限校验的指令,做页面读取图片真实网络地址的RealImage指令等,另外在sql模板封装中也用到了sqlValue指令。

cn.jbolt.common.gen:包括JBolt中的静态资源压缩生成min文件的工具类AssetsCompressor,可以快速压缩js css文件后 替换html中的引用后缀增加特殊字符。另外,还有权限拦截器依赖使用的PermissionKeyGen这个生成器,可以通过数据库里定义的可访问分配的权限资源,生成对应可以在注解上配置的权限key常量定义。

cn.jbolt.common.model:JBolt中通过设计好的数据库生成的Model和BaseModel以及字典和MappingKit。

cn.jbolt.common.safe:JBolt里关于Xss攻击的方案封装,还有其它的安全措施 也会在这里

cn.jbolt.common.style:JBolt中关于全局样式处理切换的封装

cn.jbolt.common.util:JBolt底层工具类提供 JBolt里已经集成了Hutool作为工具包,结合JFinal自身的工具类加上HUtool的 已经足够使用,JBolt中的工具类,是因为特殊需求,创建的。

cn.jbolt.common.validator:JBolt针对校验器的封装

三、cn.jbolt.base

base是JBolt中最重要的规则封装,BaseController、BaseService、BaseHandler。
BaseController:controller都要继承BaseController,参数校验、render不同的数据类型的封装,error success信息的封装,session操作的封装,常用跳转的封装等。
BaseService:针对Service层的标准规则封装,sql模板管理的封装,常用CURD的封装,项目里经常使用的条件查询,分页查询,数量查询,boolean类型字段切换相反值得操作,删除数据的逻辑封装等等。
BaseHandler: 针对前段页面Html中的静态资源相对路径 context和basePath的处理封装。

四、cn.jbolt.index

JBolt系统入口,各种路由配置的地方,电商模块有电商模块的,公众平台管理有公众平台管理的。

五、cn.jbolt.admin.mall

整个JBolt的电商核心模块的后台管理部分,包含类型、分类、品牌、属性、规格、商品、订单、订单明细、会员等。
注意:还在迭代。。。

六、cn.jbolt.admin.wechat

整个JBolt的微信公众号管理模块,可以添加各种服务号,企业号,小程序等,实现微信素材库同步与管理,选择器,关注回复,自定义关键词回复,默认回复规则等,回复内容多种多样,可随机可以多条。

JFinal社区里公众号多账号管理最全的解决方案,没有之一。

七、cn.jbolt.wxa

JBolt中关于小程序方面的支持,小程序电商API核心等。
关于小程序电商,使用的是JBolt电商模块的核心API接口。迭代中。。。

JBolt新版官网上线

http://jbolt.cn

JFinal开发者计划优惠中

https://www.jianshu.com/p/dad0e6349022