# 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 文件,完善数据回显和部分共用功能的抽离