由于经常使用了Jeesite来开发项目,所以针对Jeesite使用的相关技术架构还是比较了解的,由于Jeesite有一定的局限性,所以在平常工作中优化了他的一些代码。这次主要优化了两点,简单说明如下:
1.Jeesite项目以前使用Ehcache来存储Session,为了优化项目(因为Terracotta对Ehcache的企业版做了收费,由于时间有限,暂且不讨论Ehcache和Redis好坏,后续我会集成到Jeesite一起测试),我们将Session转存到Redis上。但由于作者自己写了sessionDAO,并用到了里面的方法,修改代码是一件比较耗时的事情,所以还是在作者原有基础上,继续使用了JedisSessionDAO处理存储到redis的Session,而其他的数据缓存,则使用基于RedisTemplate来操作redis数据库。但有一点是确认的:
就是EhCache针对并发操作要写相关的代码,而RedisTemplate已经是线程安全的,不需要再写相关的代码,便于开发和维护,看图片说明
2.为了引入比较新的版本的Spring,Jedis,Srping Data Redis,出现了版本冲突问题,Jar包必须使用下面的版本能避免冲突
Spring 4.2.9
jedis 2.9.0
Spring data redis 1.8.7
3.具体请看项目中应用,使用项目前,请在mysql数据库运行db下的jeesite_mysql.sql脚本
参考项目:https://github.com/astra-zhao/jeesite