使用Redis作为mybatis的二级缓存
使用SpringAOP和自定义注解完成Redis缓存
XSS攻击安全过滤
定时任务可视化控制
富文本可直接嵌入表单
增加系统全局设置页面
修复一些BUG
开启mybatis二级缓存有两种。
1)直接在mapper接口上加上:@CacheNamespace(implementation = com.ssrs.core.cache.RedisMybatisCache.class )
/** * <p> * Mapper 接口 * </p> * * @author ssrs * @since 2018-11-18 */ @CacheNamespace(implementation = com.ssrs.core.cache.RedisMybatisCache.class ) public interface ArticleMapper extends BaseMapper<Article> { }
2) 在xml文件上 加上
<cache type="com.ssrs.core.cache.RedisMybatisCache"/>
在考虑到mybatis的二级缓存会带来脏读问题,所以使用SpringAOP+自定注解来实现缓存,完美解决mybatis的二级缓存脏读问题
@RedisCache:添加缓存
使用方式:@RedisCache(fieldKey = "getArticlePageByPage#{ #page }") //fidldKey使用了SPEL解析 /**
* 分页数据 * @param page * @param limit * @param title * @param type * @return */ @RequestMapping(value = "getPageInfo" ,method = RequestMethod.POST) @ResponseBody //单page=1时fieldKey="getArticlePageByPage1",为每页都缓存起来,当发现缓存有这个数据的时候直接放回数据就不会在执行方法里面的语句了,没有就执行 @RedisCache(fieldKey = "getArticlePageByPage#{ #page }") public Object getPageInfo(Integer page,Integer limit,String title,String type){......}
@RedisEvict:清除缓存
使用方式:@RedisEvict(fieldKey = "getArticlePageByPage*") //*代表通配符
@RequestMapping(value = "update" ,method = RequestMethod.POST) @ResponseBody //当执行增删改方法时就加上这个注解,就会清除fieldKey="getArticlePageByPage1",fieldKey="getArticlePageByPage2"等等缓存数据 @RedisEvict(fieldKey = "getArticlePageByPage*") public Object update(Article article){....}
简介:
Quella是基于SSM+shiro+redis开发的后台脚手架,集成了一些后台通用功能,并集成了一些常用的第三方服务。 http://www.ssrsdev.top/ 账号:ssrs@qq.com 密码:admin
Quella的设计是 面向分布式集群部署 的,在框架的选择上和代码的层面都是可以以分布式集群的前提条件下进行选择与设计的。
"Quella"中译英为"杀手"的意思,亦有“杀人红尘中,脱身白刃里的感觉”,正符合这个项目的意境----为一个好的项目名而兴奋的boy :)