个人博客项目完工
本文主要总结一下项目的流程、技术点、难点,希望对有想搭建个人博客的朋友有所帮助
ps:博客还是初期版本_暂定版本0.0.1趴(麻雀虽小但五脏俱全~),之后会根据功能和体验改进(说不定会开放多用户嘞)
正文部分
一、使用技术
-
前端:Semantic UI
-
后端:Spring Boot
-
前后端联结:Thymeleaf
-
数据库:MySQL8
-
开发环境:IDEA(Win7下)
-
生产环境:CentOS 7
前端展示部分:
公共部分:
-
导航栏模块
-
底部信息模块
博客展示系统:
-
首页
-
主体部分
-
博客展示模块
-
部分分类展示模块
-
部分标签展示模块
-
最新推荐博客展示模块
-
-
-
分类页面
-
主体部分:
-
分类展示模块
-
博客内容展示模块
-
-
-
标签页面
-
主体部分:
-
标签展示模块
-
博客内容展示模块
-
-
-
归档页面
-
归档内容模块
-
-
搜索页面
-
搜索结果展示模块
-
-
关于我页面
-
信息展示主体部分
-
博客管理系统
公共部分:
-
二级导航栏
各个页面不同部分
-
登录页面
-
信息输入框
-
-
欢迎页面
-
博客管理页面
-
博客模糊搜索模块
-
博客状态展示&&编辑模块
-
-
标签管理页面
-
标签展示&&编辑模块
-
-
标签发布页面
-
标签输入模块
-
-
分类管理页面
-
分类展示&&编辑模块
-
-
分类发布页面
-
分类输入模块
-
-
博客发布页面
-
博客输入模块
-
标题输入
-
类型选择
-
主体输入
-
分类选择模块
-
标签选择模块
-
首图链接选择模块
-
摘要输入模块
-
功能选择模块
-
-
后端逻辑部分:
SpringBoot大致框架如下:
model层(面相对象的各个实体类,用于连接数据库)
dao层(结合model层,连接数据库)
service层(实现各实体类操作接口,结合dao层获取并处理数据)
view层(对接前端,给前端页面渲染发送所需的数据)
-
配置:
-
分为两个配置,在统一的application.yml文件中进行切换,开发环境使用的dev配置,可以改动数据库结构,生产环境使用pro配置,不可以改动数据库结构,只能进行增删改查
-
dev配置
-
pro配置
-
-
项目配置:保存在pom.xml文件中
-
-
model层:
-
Blog实体类
-
Comment实体类
-
Tag实体类
-
Type实体类
-
User实体类
-
-
dao层(使用JPA对接数据库):
-
Blog仓库
-
Comment仓库
-
Tag仓库
-
Type仓库
-
User仓库
-
-
service层:
-
博客服务接口
-
评论服务接口
-
标签服务接口
-
分类服务接口
-
用户服务接口
-
-
view层
-
管理系统View层:
-
Blog控制器
-
登录控制器
-
标签处理控制器
-
分类处理控制器
-
-
展示系统View层:
-
关于我页面控制器
-
归档页面控制器
-
评论功能控制器
-
首页控制器
-
标签展示控制器
-
分类展示控制器
-
-
-
工具类:
-
markdown文本处理(每次加载渲染html标签)类
-
MD5加密工具(用于登入用户密码加密,后台数据库中存储的是密文)
-
Bean工具类(用于比对更新数据与原有数据中不同的部分)
-
-
拦截器:拦截未经许可访问管理页面的请求
-
日志输出模块:
-
自动写入日志模块
-
异常拦截模块(防止控制器异常发生之后直接阻塞服务导致其他用户无法访问,将异常全部写入日志文件)
-
三、具体实现
ps:由于整体代码文件过长,所以代码就放在github上——之后的更新也会在github上说明,本文只做简略以及重点说明
前端部分
管理系统:
技术点:
-
使用thymeleaf模板中的fragment功能,设置公共fragment文件,将所有页面相同的部分放在fragment文件中,然后使用thymeleaf模板里的方法来获取;因为篇幅不长,此处贴一下其源码(导航栏使用了选择器来将当前页面高亮——需要在每个页面中传入不同的值)
-