# MutiModule-parent
**Repository Path**: zshuming/MutiModule-parent
## Basic Information
- **Project Name**: MutiModule-parent
- **Description**: maven 多模块项目 分为 domain(entity) persist(dao) service(service) web(controller)多个模块,整合easyui,完成相关RBAC相关CRUD功能。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 112
- **Created**: 2015-08-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
maven多模块项目管理,整合spring mybatis,多模块划分: web层,service层, persist层, 其他(capthca验证码);
已经实现后台管理页面RBAC相关权限控制,整合easyui,完成相关CRUD功能。
#upgrade更新部分:
#20150504
增加模板类文件:
persist持久化部分使用mybatis,使用maven-mybatis-generator插件,生成对应的模板文件,并添加分页操作
service部分,自己书写fpl,使用freemarker生成service业务层代码;
#20150509
增加针对updateByPrimaryKeySelective操作的缓存更新功能 AOP
#20150523
persist service层增加RBAC功能权限相关处理,并对结果集进行树形结构转换功能。
#20150225
增加后台用户登陆页面;
#20150526
后台登陆页面增加登陆校验功能,下一步对/admin下的所有请求,增加listener监听,避免未登录进行访问;
#20150527
后台登陆增加filter(登陆与否状态校验),后台管理页面顶部功能,左边sysmanResource树结构实现,
RedisClient增加方法(过期时间),重置某个key的过期时间;
对LoginFilter在登陆状态下重置过期时间,避免登陆后即便操作状态下,缓存也会过期;
后台管理页面用户是否有操作当前资源的权限判定;
#20150528
后台登陆页面,验证码和用户登陆信息,修改为使用session机制(原先使用redis,会出现缓存覆盖情况);
#20150601
persist层增加逻辑删除sql相关;service层增加逻辑删除相关(通用方法写入模板文件中)
后台管理页面,逻辑删除功能实现,修复后台用户登陆后,登陆信息session与redis缓存匹配的bug
以实现RBAC相关单表CRUD,下一步实现rel关系处理
#20150602
后台管理页面,rel关系处理(sysmanUser-sysmanRole-sysmanResource 部分),
jquery左右选择 easyui樹形控件
********************************至此完成RBAC相關權限控制部分***************************************************
#20150608
persist层,原先使用形如(如下)所示的代码段来定义一个个的bean,现改为MapperScannerConfigurer(查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean)
service层,原先使用入刑(如下)所示的代码段来定义一个个的bean,现改为
#20150623
增加webapp项目:
MutiModule-ueditorDemo(ueditor部分的demo用例);
MutiModule-ueditor (ueditor部分的js/css/image……部分资源文件);
增加quickstart项目:
MutiModule-uedirotClass(ueditor部分的相关java类文件和添加的servlet部分。ueditor源码类文件部分有部分修改);
前台有多个web子项目,每个子项目有时候都会依赖于ueditor部分,这样,重复性的东西很多,这样,可以吧这一部分的资源抽离出来(MutiModule-class MutiModule-ueditor),
这样的话,java类文件放到MutiModule-class的jar包里面,资源文件js/css/image放到MutiModule-ueditor的war包里面;
MutiModule-uedirotDemo就是一个测试用例,测试可用。
#20150624
增加 MutiModule-logback 模块,用来统一处理日志记录模块
使用方法详见 MutiModule-logback/README.md 文件中
#20150625
MutiModule-service层,Redis相关
SerializablePojoRedisTest 测试类,Redis相关,存入value为序列化之后的Student对象,此后如果Student类属性变更,从缓存中获取value值之后进行反序列化Student对象,验证可用性;
#20150701
增加MutiModule-upload MutiModule-common 相關
MutiModule-upload : ajaxfileupload.js 文件上傳相關功能測試完成
MutiModule-common : 通用方法處理相關
MutiModule-web : 登陸驗證去除session部分,改為使用cookie部分; 同時去除驗證碼部分
#20150704
MutiModule-upload 部分。将FileUploadServlet 部分移动到MutiModule-common
移除 MutiModule-kindeditorClass 模块,将相关的*.java文件移动到 MutiModule-common
删除 MutiModule-upload 部分,将文件上传部分移动到 MutiModule-kindeditorDemo 内部
形成 jsUpload.jsp 文件,采用 ajaxfileupload.js 进行文件上传,其中文件上传URL类采用 kindeditor 部分,
整体 MutiModule-kindeditorDemo 模块中,不管是使用富文本编辑器。还是js进行的文件上传,都统一有一个文件处理类(com.MutiModule.common.kindeditor.servlet.FileUploadServlet)
对整体文件上传类统一规划
#20150706
GraphicsMagick+im4java 进行图片处理操作
#20150709
增加 DesUtilss 类 ,为 对称加密解密类,其中引入自定义的 BASE64DecoderReplace 类,用来提到(sun.misc.BASE64Decoder类)
对称加密解密算法,可以用来在CookieUtilss 方法中,对存入的cookie值进行处理,防止客户端改变cookie值进行非法操作。
#20150710
增加 MutiModule-citySelect 模块,此模块为jQuery相关的省市区地址选择框,同时满足键盘输入匹配地址,
省市区选择采用弹出层效果,废除难看的 select的级联选择框。
#20150711
MutiModule-common 模块:
扩展 mybatis-generator-maven-plugin 功能,在自动生成代码时添加分页功能:
com.MutiModule.common.mybatis.plugin.PaginationPlugin mysql 分页扩展插件
com.MutiModule.common.vo.mybatis.pagination.Page 分页插件依赖的分页类
com.MutiModule.common.mybatis.plugin.DeleteLogicByIdsPlugin 自定义的扩展插件
实现增加一个方法,方法名称为 deleteLogicByIds, 在 接口文件和XML的sql文件中,都增加自定义的方法。
MutiModule-perisit 模块
在使用 mybatis-generator-maven-plugin 进行Demo 表结构对应的文件生成后,完成单元测试功能
#20150713
使用新增的 mybatis-generator-maven-plugin 插件,将之前不符合要求的(关联关系表结构-复合主键, 驼峰式字段命名)进行修复;
mybatis-generator-maven-plugin 用来指定自动生成主键的属性(identity字段或者sequences序列)。如果指定这个元素,MBG在生成insert的SQL映射文件中插入一个元素
XmlParserUtilss dom4j 处理xml 通用方法
#20150714
维护XmlParserUtilss 方法
增加 生成xml 字符串的方法,详见单元测试部分 GenerateXMLTest
#20150715
XMLUtilss 增加方法,解析xml标签元素
#20150717
设定 MutiModule-web 模块为后台管理模块,前后端模块分离,修改链接请求部分,去除无用的 admin 部分;
整合kindeditor 相关功能到 MutiModule-web 模块,同时区分不同的用户 文件空间,防止不同用户上传的文件资源被其他用户看到并且使用
fileUpload?contextPath=admin&detailPath=anonymous
fileManager?contextPath=admin&detailPath=1
针对文件上传,文件空间 相关的两个servlet部分,进行参数传递:
contextPath : 用来区分项目上下文,区分不同模块下调用方法,比如传递 admin,表明他是后台模块进行的文件上传功能;
detailPath: 在区分不同项目级别模块的路径下之后,需要区分不同用户上传的功能,比如传递 1, 表明他为 id=1 的用户上传的,如果传递 anonymous,表明为匿名用户
#20150718
修复 首页登录时样式文件出不来: Resource interpreted as Stylesheet but transferred with MIME type text/html
增加默认的index.jsp 文件重定向功能
#20150721
web模块LoginFilter文件匹配的url-pattern设定为 /* , 并且设置过滤url(init-param),防止不必要的资源被过滤。 修复上述bug部分
#20150722
web模块, http://127.0.0.1:8080/MutiModule-web/demo/page/5
DemoController.java 类文件,增加分页相关的前台插件,添加 jquery.jqpagination.js 前台分页插件,并进行功能处理,现已完成
#20150723
增加讀取配置文件的類文件,詳見 TestPropertiesUtilss TestPropertiesUtilssTest 兩個文件,
讀取配置文件,並且將配置文件的內容存在緩存中,只需調用getXXX() 方法即可獲取到配置文件中的值
增加sso.properties 文件,將sso單點登錄相關的配置文件讀取功能完成;
增加三個webapp子模塊: ssoAuth; ssoDemo1; ssoDemo2 總管三個模塊,用來完成單點登陸功能,
進行本地測試的時候,需要修改他依賴的common模塊的sso.properties文件的相關配置, 並且將上述三個webapp項目加載到tomcat路徑下
ssoAuth: 單點登陸校驗模塊 現階段登陸檢驗的用戶名密碼一致即可完成登陸
ssoDemo1: 單點登陸客戶端1 http://127.0.0.1:8080/MutiModule-ssoDemo1/userCenter
ssoDemo2: 單點登陸客戶端2 http://127.0.0.1:8080/MutiModule-ssoDemo2/userCenter
#20180724
增加 BinaryTest 的单元测试部分,使用二进制数据的每一位,表示不同的用户信息;
注意这样的话, 保存的用户信息位数是有限制的,Integer有位数限制,不能随意扩展,如果扩展位数过多,可以考虑使用String类型的数字;
#20150725
增加 BaseLocation 省市区 数据库相关, persist/service 相关已完成 selectByPrimaryKey 相关单元测试,下一部分,在web模块中对省市区进行维护(CRUD)
#20150727
WEB模块完成baseLocation省市区相关的zTree异步加载树结构功能,下一步进行CRUD功能;
persist层,generatorConfig.xml 增加两个参数设置, beginningDelimiter endingDelimiter 将默认生成的sql.xml文件中默认的 (") 去除;
减少每次使用代码生成工具生成代码之后,又需要手动更改 *。xml 文件(去除" 标识)
#20150728
修复 beginningDelimiter endingDelimiter 为(") 时候的部分bug,将这一部分旧代码存在的bug进行修复;
web模块增加后台的条件筛选功能;
#20150730
增加lucene模塊,需進一步優化。 增加persist层直接针对数据库的相关操作,进行实体类型的相关功能性操作(索引文件生成&&分页高亮搜索查询)
#20150801
增加MutiModule-lucene相关
LuceneIncreTest.java 文件(增量索引操作)
LuceneUpdateTest.java 文件(更新索引操作)
LuceneDeleteTest.java 文件(删除索引操作)
修复MutiModule-persist相关的遗留代码部分:
beginningDelimiter endingDelimiter未设置造成的问题
addCriterion("\"id\" >=", value, "\"id\""); 改为 addCriterion("id >=", value, "id");
增加 DemoTransientListStringTest 单元测试部分, 可以用来保存多个图片路径的json串
此单元测试主要测试 @Transient 注解,可以保存至数据库字段中的值为json字符串(泛型为List),之后再取出json数据的时候,将这一部分的json串转换为原始数据格式进行输出;
增加 DemoTransientEnumTest 单元测试部分,可以用来保存多个enum类型的数据格式,json串
此单元测试主要测试 @Transient 注解,可以保存至数据库字段中的值为json字符串(泛型为 List),之后再取出json数据的时候,将这一部分的json串转换为原始数据格式进行输出;
#20150803
增加 MutiModule-static 模块,此模块下完成相关静态资源的配置处理(js/css/image……);
抽离出来一份static静态资源模块,为动静分离做准备;
单元测试详见: MutiModule-ssoAuth MutiModule-ssoDemo1 MutiModule-ssoDemo2 MutiModule-static 相关
可见 MutiModule-ssoAuth/README.md 文件
web层增加 GlobalIntercepter 拦截器,增加对 context_ 部分的槽在,减少jsp页面中过多的代码编写;
persist中generatorConfig.xml代码生成器部分,增加deleteFlag中的字段类型,设为enum类型,并且完成相关单元测试部分;
#20150804
web层后台easyui的CRUD功能,使用新开页面代替dialog部分;详见 web层的DemoController.java 文件;
下一步进一步完成抽离出来的 easyui_dataGrid_blank_extend.js 文件,完善数据回显和部分共用功能的抽离