作了一些改造,增长了一些功能和一些代码的重构,而且更换了博客主题。html
关于项目,对于开发的练手项目,可以工程化,严谨一些。java
关于文档,本文主要中从项目需求,项目设计的方式来阐述.mysql
如何从零开始,使用springboot开发项目。git
记录一些在开发过程当中遇到的一些问题,总结开发技巧 github
接下来,会以需求和设计方式来阐述web
首页展现redis
文章编辑spring
文章管理sql
对于刚学习springboot的同窗,最好的就是拿一个项目练练手。在编码过程当中遇到的问题并解决,这都是宝贵的经验。 用springboot开发的博客系统,简单并且实用,适合作练手项目。
管理主页,记录最新文章,最新留言,最近日志等
发布文章
文章管理
分类管理
文件管理
友情连接
系统设置
本项目用到的技术和框架
本项目的关键点
环境
熟悉spring开发的同窗,相信对此结构图也并不陌生。平时的开发过程当中,结构设计是重要的缓解,特别是协做开发的时候,明细的分包,模块化,可减小在git提交时的冲突。
本模块主要介绍一些关键的业务流程。
发布文章流程:
修改文章的流程大体上和发布是类似的,这里再也不赘述了
登陆流程
文件上传
用户表:t_users
用户表主要管理后台管理用户。
文章表:t_contents
主要管理文章内容,外键为cid
标签表:t_metas
管理标签信息,外键为mid
文章标签关系表:t_relationships
记录文章和分类的关系,多对多表
首先,编写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包
以上是我学习springboot总结的一些博客,特此分享
喜欢的话,给个推荐,给个star鼓励一下
若是有项目上的一些问题,可直接邮箱我 jantent@qq.com