您现在的位置是:网站首页 > 技术专栏
本套系统所使用的一些技术(不完全列出)
整体技术介绍
页面端:html/css/js/ajax
第三方库:jquery/bootstrap/echarts/summernote/highlight.pack/webuploader/layui/
fancybox/peity/sweetalert/validate/pace/datapicker/content/contabs/fakeLoader/modernizr
服务端:Java
整体架构:spring、springMVC、mybatis
数据库:MySQL
项目开发工具:MyEclipse 2014、VS code
服务器:Tomcat 8.0
项目管理工具:maven、git
登录模块:Shiro
1. Shiro提供了身份认证/登录,验证用户是不是拥有相应的身份。
2. Shiro提供了授权,即权限验证,验证某个已认证的用户是否拥有某个权限。
3. Shiro提供了加密,保护数据的安全性。密码采用MD5存到数据库。
4. Shiro提供了缓存,用户登录后,其用户信息、拥有的角色/权限不必每次去查,提高了效率。
5. Shiro提供了 记住我,这个是非常常见的功能,即一次登录后,只要不注销,下次再来的话不用登录。
具体实现过程参加另一篇博客《使用Shiro实现登录》
用户访问记录模块:监听器(Listener)+ 同步锁(synchronized)
1. 获取用户的真实IP、地理位置、浏览器及操作系统等。
2. 用户每天第一次登录将会被记录、一天内多次登录或清除cookie将不会被记录。
3. 获取地理位置使用的淘宝的接口。
具体实现过程参加另一篇博客《springMVC自定义注解拦截恶意请求》
防止恶意请求模块:springMVC自定义注解+拦截器(Interceptor)
1. 防止用户连续刷新页面。
2. 在方法上添加注解表示:该方法在2秒内请求不能超过5次。
具体实现过程参加另一篇博客《利用监听器(Listener)实现用户访问记录》
操作日志模块:Spring AOP + springMVC自定义注解
1. 可以记录管理员的增删改查操作。
2. 可以记录下用户具体的查询内容。
3. 在方法上添加注解表示调用该方法将记录下来。
具体实现过程参加另一篇博客《springMVC自定义注解+AOP实现操作日志》
缓存模块:mybatis二级缓存
1. mybatis有一个缺陷,无法进行多表操作,只能单表。
2. mybatis二级缓存是同一个namespace放到一个缓存对象中。一般逆向生成的各个实体的mapper都是单独的文件,即单独的namespace。
那么就出现了问题。
例如:在UserMapper.xml中有大多数针对user表的操作。但是在一个XXXMapper.xml中,还有针对user单表的操作。这会导致user在两个命名空间下的数据不一致。如果在UserMapper.xml中做了刷新缓存的操作,在XXXMapper.xml中缓存仍然有效,如果有针对user的单表查询,使用缓存的结果可能会不正确。
黑名单模块:过滤器(Filter)
1. 在过滤器中进行IP拦截,如果该IP已进入黑名单,将无法正常浏览网站。
服务端数据分页模块:PageHelper
图片上传模块:Web Uploader
1. Web Uploader支持分片、并发、预览、压缩、HTML5 & FLASH、MD5秒传、支持文件多选、类型过滤、拖拽(文件&文件夹)、图片粘贴功能。
2. 图片上传到服务器指定的磁盘文件夹下,没有存到项目中。
3. 当需要图片时,先去服务器下寻找图片,没有合适的再选择上传图片到服务器。避免每次都要进行图片上传。
评论留言模块:畅言
富文本模块:summernote
1. Summernote轻量级、小巧,界面好看,能满足日常需要。
2. 通过整合highlight.js,修改默认summernote的代码可实现代码高亮功能。
统计图表模块:eCharts
1. 通过eCharts,可以很直观的看到近日网站的访问情况,博客的浏览/发表情况,以及用户前台的搜索量等等。
数据展示模块:Bootstrap Table
1. 实现查询、分页、排序、复选框、设置显示列、操作等。
页面加载模块:Ajax 异步
1. 几乎页面的所有请求都采用异步操作完成。
页面预加载模块:fakeLoader
1. 在管理端使用了fakeLoader进行预加载。
线上部署模块:
1. 阿里云服务器:1核2G;高效云盘40G;固定带宽:1M。
2. 腾讯云域名:www.luotf.com
转载:感谢您对luotf个人博客网站平台的认可,及对该作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处。本文章部分图片、文章来源于网络,版权归原作者所有,如有侵权,请与我联系删除。
上一篇: git常用操作总结
下一篇: 初识Spring Boot框架