# giftmail **Repository Path**: accuser/giftmail ## Basic Information - **Project Name**: giftmail - **Description**: spring+springmvc+mybatis+redis+maven+nexus基础框架,此框架简单易用,会随着能力范围内不断的优化,提供一套简单易用的框架给后来者,欢迎码友参与讨论 ! - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2017-01-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #giftmail 技术栈: 一.spring + springmvc 4.1.1 二.mybatis 3.2.8 三.spring + redis 2.7.1 四.quartz 2.2.1 五.druid 1.0.9 六.logback 1.2.3 七.freemarker 2.3.23 八.maven + nexus 九.系统拦截器 十.面向切面的对session的保存入库 十一.分页拦截器 十二.Excel org.wuwz.ExcelKit 1.1(开源贡献者) 十三.微信支付-java端获取预支付ID 十四.将原来一个Maven项目,拆分成按照模块多个Maven项目来管理 十五.spring对ActiveMQ的整合 1.截止到2017.2.4日提交的代码中,增加了Excel的导出功能 (增加Excel的目的:最近看了一个比较轻的Excel开源项目,地址为:https://git.oschina.net/wuwenze/ExcelKit.git,是想着整合一下到我的框架中,使框架丰富一些,同时,也是想支持一下开源事业,故,增加了Excel导出功能) 2.截止到2017.2.21日将shiro整合到框架中完成初级登陆验证和授权功能(此功能已经删除) 3.截止到2017.8.25日增加了对系统日志的切面记录功能,使用的是springmvc的Aspect,并且记录的用户访问页面,ip等信息入DB TSysOperationLog类对应的数据库表为Sys_operation_log,建表语句如下: /* SQLyog Ultimate v11.11 (32 bit) MySQL - 5.6.34 : Database - giftmail ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/`giftmail` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `giftmail`; /*Table structure for table `Sys_operation_log` */ DROP TABLE IF EXISTS `Sys_operation_log`; CREATE TABLE `Sys_operation_log` ( `operation_log_id` int(15) NOT NULL AUTO_INCREMENT, `operation_log_funname` varchar(100) NOT NULL COMMENT '操作功能名称', `operation_log_memo` varchar(500) NOT NULL COMMENT '操作详细描述', `operation_log_userid` varchar(8) DEFAULT NULL COMMENT '操作用户', `operation_log_time` datetime NOT NULL COMMENT '操作时间', `operation_log_ip` varchar(100) DEFAULT NULL COMMENT '电脑IP地址', PRIMARY KEY (`operation_log_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='系统操作日志表(近1个月内)'; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 4.截止到2017.8.25日增加了整合了freemarker到框架中.用ftl替代了jsp. 5.截止到2017.8.25日增加了一个拦截器,用${ctx}代替页面中的访问路径. 6.截止到2017.8.25日增加了对spring-mvc.xml做了部分注释 7.截止到2017.8.30日增加了采用spring的AOP方式,对redis进行管理,对Cache进行缓存.此方案比较优秀的原因是:1.对业务的侵入性很低 2.采用注解的方式 3.符合SPEL的语法注解 4.不用构建redis的dao层等侵入性代码 8.截止到2017.8.30日扩展了(7),在sprig.xml中,扩展了多个业务的Cache,并在缓存存储的时候,可以区分开不用业务的key,eg: 54.xxx.xxx.xxx:6379> keys * 1) "userCache:user:3" 2) "userCache:user:1" 3) "dataCache:data:2" 4) "dataCache:data:3" 5) "userCache:user:2" 9.截止到2017.9.1日增加了Maven远程访问私服的pom.xml内容 10.截止到2017.9.2日增加了logback+slf4j的日志内容.修改了pom.xml内容,并新增了logback.xml 比原来的log4j更具有统一性. 此logback日志框架采用的门面模式(外观模式),对业务的影响为0. 11.截止到2017.9.5日增加了"微信支付"服务端的功能.主要思路和内容如下: 参考微信的API列表的统一下单文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1,其中包括必要的参数内容 加入了如下的主要类: WxPayController.java 加入了如下的辅助类: AppForWxGetPrePayIdUtil.java GetWxOrderNo.java HttpClientConnectionManager.java MySSLSocketFactory.java TrustAnyTrustManager.java RequestHandler.java 加入回调页面notify_url.jsp(注意:此页面只是用来备份代码,此jsp页面应该独立部署一个工程,使此页面可以独立访问,项目工程名为app_wxpay)由于此app_wxpay涉及到隐私账号,不予公开,存留于移动硬盘中 另外:增加了Main函数的模拟登陆方法(主要功能是模拟登陆后获得session) + 使用Post请求访问微信支付. 代码在Main.java中 12.截止到2017.9.11日增加spring4.1.1+quartz2.2.1的简单整合(本意是想把定时任务做成动态的,但是试过了很多的网上的资料都没有成功,所以,退而求其次先整合了一个通过配置文件spring-mvc.xml来控制任务的执行.未来再继续考虑如何通过封装通用方法,用controller动态调用定时任务的方法.) 13.截止到2017.9.13日将原来一个Maven项目,拆分成按照模块多个Maven项目来管理giftmail-parent,giftmail-common,giftmail-dao,giftmail-service,giftmail-web 14.截止到2017.9.19日增加了spring对ActiveMQ的管理(生产者发送的消息是String文本类型的message) 15.截止到2017.9.20日分离了spring对ActiveMQ的管理,尝试了三种的消息监听器