借鉴网上优秀项目开发的博客系统
可直接导入该项目于本地,修改配置文件中的数据库连接信息,导入附带数据库结构的SQL文件可直接生成所有表,项目中使用到的关于阿里云功能还需开发者自行前往阿里云进行相应功能开通。
当克隆项目到本地后可使用手机号:18751655981,密码:123456进行登录,也可自行注册并将其修改为最高管理权限。
- 博客汇总,以列表形式展示文章,并附上文章作者、发布日期、分类情况以及文章简要
- 能够以分类形式查看文章
- 能够以时间列表方式归档文章
- 可实现通过标签查找所有相关文章
- 个人介绍、联系方式
- 博客网站更新记录
- 友链链接
- 网站仪表盘,记录网站访客量情况
- 文章管理 1.分页展示文章信息 2.可对文章进行再编辑以及删除文章
- 发布文章 1.使用markdown编辑器,支持插入代码,插入图片等功能 2.文章可选择分类和标签,以及转载文章支持链接原作者文章
- 分类管理,支持增加、删除、修改分类
- 友情链接 1.支持增加友情链接 2.支持删除友情链接
- 反馈信息管理,可查看用户反馈信息
- 可以使用docker方式部署,也可支持-jar方式
- 使用springboot自带方式打包
- 首页响应时间不超过2秒钟
- 文章页响应时间不超过3秒钟
- 本项目用到的技术和框架 1.项目构建:Maven 2.web框架:Springboot 3.数据库ORM:Mybatis 4.数据库连接池: Druid 5.分页插件:PageHelper 6.数据库:MySql 7.缓存:Redis 8.前端模板:Thymeleaf 9.文章展示:Editor.md
- 环境
工具 | 名称 |
---|---|
开发工具 | IDEA |
语言 | JDK1.8、HTML、css、js |
数据库 | Mysql5.6 |
项目框架 | SSM |
ORM | Mybatis |
安全框架 | SpringSecurity |
项目构建 | Maven |
运行环境 | 阿里云Centos7 |
- 本项目采用Springboot的maven插件进行打包,打包结果:****.jar
- 部署方式:使用 nohup java -jar .jar >.log 2>&1 &的方式,后台启动项目,并在该路径下生成运行日志
名称 | 类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
id | int | 11 | true | true | 主键,自增 |
phone | varchar | 255 | false | true | 手机号 |
username | varchar | 255 | false | true | 用户名 |
password | varchar | 255 | false | true | 密码 |
gender | char | 50 | false | true | 性别 |
trueName | varchar | 255 | false | false | 姓名 |
birthday | char | 100 | false | false | 生日 |
varchar | 255 | false | false | 邮箱 | |
personalBrief | varchar | 255 | false | false | 个人简介 |
avatarImgUrl | varchar | 255 | false | true | 头像url |
recentlyLanded | varchar | 255 | false | false | 最近登录时间 |
名称 | 类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
id | int | 11 | true | true | 主键,自增 |
articleId | bigint | 20 | false | true | 文章id |
author | varchar | 255 | false | true | 作者 |
originalAuthor | varchar | 255 | false | true | 文章原作者 |
articleTitle | varchar | 255 | false | true | 文章标题 |
articleContent | longtext | 0 | false | true | 文章内容 |
articleTags | varchar | 255 | false | true | 文章标签 |
articleType | varchar | 255 | false | true | 文章类型 |
articleCategories | varchar | 255 | false | true | 文章分类 |
publishDate | varchar | 255 | false | true | 发布文章日期 |
updateDate | varchar | 255 | false | true | 更新文章日期 |
articleUrl | varchar | 255 | false | true | 文章url |
articleTabloid | 0 | 255 | false | true | 文章摘要 |
likes | int | 11 | false | true | 文章喜欢数 |
lastArticleId | bigint | 20 | false | false | 上一篇文章id |
nextArticleId | bigint | 20 | false | false | 下一篇文章id |
名称 | 类型 | 长度 | 主键 | 非空 | 描述 |
---|---|---|---|---|---|
id | bigint | 20 | true | true | 主键,自增 |
pId | bigint | 20 | false | true | 父id |
articleId | bigint | 20 | false | true | 文章id |
originalAuthor | varchar | 255 | false | true | 文章原作者 |
answererId | int | 11 | false | true | 评论者id |
respondentId | int | 11 | false | true | 被评论者id |
commentDate | varchar | 100 | false | true | 评论日期 |
likes | int | 11 | false | true | 评论点赞数 |
commentContent | text | 0 | false | true | 评论内容 |
- controller层中编写前端接口,接收前端参数
- service层中编写所需业务接口,供controller层调用
- 实现service层中的接口,并注入mapper层中的sql接口
- 采用Mybatis的JavaConfig方式编写Sql语句。由于并没有使用Mybatis的逆向功能,需要自己手写所有sql语句
- 关于事务的实现,在启动类中开启事务,并在service层需要实现事务的业务接口上使用
@Transactional
注解,还是十分方便的 - 本项目开发并不是很难,只是在业务的实现上比较复杂
- 使用妹子UI主题,减少了页面的开发难度
- 前端页面与后端的交互主要是在controller包中,并使用Thymeleaf渲染页面。
- 自定义异常处理页面,通过重写
WebMvcConfigurerAdapter
实现自动跳转到404、403页面