首页展示
首页也文章列表+图片的形式展示内容,默认最大显示12篇文章,包括发布时间和分类
上部展示菜单栏,支持搜索,归档页等功能
右侧显示菜单栏,展示个人github地址,个人信息,标签云等
使用redis缓存首页的html页面,加速访问。
打包、部署和运行本项目采用springboot的maven插件进行打包,打成jar形式
部署方式:使用**nohub java -jar xxx.jar &**的方式,启动项目
数据设计
用户表:t_users
用户表主要管理后台管理用户。
文章表:t_contents
主要管理文章内容,外键为cid
标签表:t_metas
管理标签信息,外键为mid
文章标签关系表:t_relationships
记录文章和分类的关系,多对多表
性能与可靠性 性能设计
将文章内容写入redis中,加快访问速度
可靠性设计后台管理,可以系统日志,查看系统运行状态
定时发送邮件,发送服务端的可用内存,cpu,最新日志,硬盘情况进行监控
对于恶意的IP,支持黑名单设置,禁止访问
开发流程 数据库的curd
首先,编写sql语句,创建数据库。
本项目的crud操作采用mybatis的逆向功能,对于特殊操作,需要自己手写sql语句
springboot如何使用mybatis,以及mybatis的逆向工程,请参考springboot与mybatis
编写service层,根据需求分析和概要设计,将具体业务转成具体代码
关于事务的使用,使用srping中的@Transactional,还是很方便的
本流程的开发不是特别难,关键在于业务的实现
页面与展示
作为一个后端开发,css的功力还是有所欠缺的,所以也是用了妹子UI主题,和tale的后端页面,大大减少了页面的开发难度,特此感谢
页面与后端的交换主要是在controller包中,springboot的页面开发和springmvc是几乎一样的,@PostMapping和@GetMapping这两个注解也是方便了开发。
统一的异常处理,使用@ControllerAdvice,定义异常页面,设置自动跳转500,404页面。
拦截器,获取http请求中的ip,判断是否在黑名单(如果在,则禁止访问系统)
其他功能
该项目是在My blog基础上修改的,修复了部分bug,增加添加黑白单功能,指定文章缩略图
分析访问量最多的数据,主要在于文章访问部分,将文章放入redis缓存。每次编辑完文章后,更新缓存
每天定时发送邮件,汇报服务器运行状态和最新日志,手机即可查看。
系统安全
使用阿里云云主机,借助阿里云本身防护机制,
在主机中安装denyhosts,对于尝试暴力破解ssh的IP,实施封禁
对于评论部分,能够抵御sql注入和xss攻击
打包测试
使用springboot本身测试方式,在集成测试之前,先进行单元测试
打包,使用springboot的mvn插件,打成jar包
网站建设服务器选用的是阿里云centos7
域名是腾讯送的
网站需要备案,备案的话,只要按照阿里云提示的流程走,就可以了,就是上传个人身份信息,和审核,大概需要一个月的时间
开发总结
springboot常用注解
srpingboot整合mybatis
springboot之邮件的发送
springboot之thymeleaf的使用
springboot之定时任务
springboot之netty的使用
springboot之redis的整合与使用
以上是我学习springboot总结的一些博客,特此分享