SpringBoot项目:个人博客的搭建(一)-项目准备

项目演示地址:blog
本项目适合刚学完springboot拿来练手
项目源码:https://github.com/lany1721/blog 感谢star

前言

​ 这段时间呢,接触了一些spring boot的内容后,对比以前用ssm来搭建项目所需要的“配置地狱”,使用springboot简直是酸爽,这真的是春天哈哈哈。

​ 学了springboot之后,就一直想找一个练手的项目,在网上看到很多开发者用springboot来搭建博客,自己也想跟风试试哈哈哈,正好也可以检验一下自己。其实我之前是有搭建过一个博客项目的,不过因为页面太丑陋、没有做需求,导致后面代码增增改改搞得好乱,就把那个项目废弃了。所以为了不重蹈覆辙,这次打算顺着开发的流程来。

需求分析与功能规划

角色

​ 通过网站面向的角色来分析,我们可很清楚的知道这个项目大概所需要的功能,这个项目可以很简单地知道有两个角色:

  • 访客

  • 博主

    这里通过简单的导图来描述两个角色分别可能需要什么功能

访客

​访客的分析关乎我们前端页面所需要展示的页面功能,以及页面信息的重要程度的排版问题

访客的功能需求

博主

首先,访客有的功能,身为网站的管理员,都应该拥有,然后博主还应该拥有管理的权限,即增删改

管理员需求的功能应该有:

管理员的功能需求

展示

通过访客这一角色的分析,对博客的展示页面进行划分

前台页面模块

主页:主页最重要的信息应该是展现出博文列表,当然了如果只有博文列表的话,主页有点太单调了,所以可以有丰富的元素来点缀一下,比如巨幕图。

文章页:显示文章内容和文章元数据(分类、标签、日期、浏览量、作者),评论列表,版权信息等。

分类页:初步设想是展现出所有的分类就好,因为分类不会很多,所以也不打算进行分页展示。点击某个分类,可以跳转到分类项页面查看对应分类下的所有博文,分类项页面实现分页展示

标签页:跟分类页一样

归档页:直接按时间线展示出所有的博文,一个页面分成两列展示。

顶部导航栏:没什么好说的,就是用来页面导航

侧边栏:在博文页中,充当文章目录功能,对文章进行导航。在其他页面,除了与顶部导航栏相识,还展现友链信息,博主的简要信息。

后台

后台页面模块

博客:展示博客的元数据,提供对博客进行管理的接口功能

个人信息页:主要可以修改关于我的内容,修改登录密码等

分类/标签/友链:可以进行增删改。

技术选型

需求分析做完呢,就可以来根据网站的功能啊、承载量啊等等来进行技术选型了。因为我这个网站没什么特别的需求,而且我会的技术也不多,所以技术分析自然而然就不存在的。这里就列一下大概会用到的技术和中间件

  • 数据库相关:MySQL 5.7、Redis
  • web后端相关:SpringBoot 2.0 、Thymeleaf
  • web前端:Semantic UI、Hexo
  • 工具和中间件:Maven3、IDEA、Git
  • 环境:JDK8

设计与规范

关于前端

因为我是学后端的,对前端的开发很不了解。前端页面我就采用了拿来主义惹。

前台的展示我用Hexo的主题,后台用Semantic UI搭建的;这里建议可以去Hexo里主题看看有没有自己喜欢的风格,然后可以直接用Hexo生成我们要的静态页面,非常的省心省力。

我用的Hexo主题:Melody 感谢作者提供这么好看的主题

Semantic UI的官方文档:Semantic UI

关于评论

因为没有访客登录注册功能,访客评论的时候又要输昵称又要邮箱的,挺麻烦的,而且也没有头像显示这个功能,所以评论功能打算用第三方的评论插件gittalk来完成

Gitalk的官网:gittalk

实体类的构建

实体类

根据前面需求分析,大概可以构建出如上图的5个类。图示中,类的属性、类与类之间的关系都可以明确知道。

解释一下不明确的属性:

Blog类
String blogType; 表示文章的类型,转载还是原创
String blogBrief; 文章的简介,显示在主页上的简要博文内容
Boolean published; 是否发布
Boolean appreciation;是否开启赞赏
Boolean copyright;是否开启版权声明
Boolean comment;是否允许评论
User类
String username: 与nickname不同,username是登录名,唯一。
String uuid: 用户的唯一标识,这里主要用来生成用户目录名
String role: 用户的角色,没有做权限管理,所以这个字段用处不大
String avatar: 用户的头像
String introduce: 用户介绍,也将是前台展示的关于我信息

因为关联关系的存在,实体类中的字段在开发中不止这些属性。会有一些字段用来维护关联关系,比如Blog类中会存在一个Category属性。

数据表设计

有了实体类,数据表的设计也非常的清晰,每个实体类应该对应一个数据表。

数据库表
t_blog表
category_id:用来维护文章与分类的一对多关系
user_id:用来关联文章作者的数据,这个其实可以省略,因为网站的user就一个
t_blog_tag表:用来维护文章与标签的多对多关系

表与表之间的关系可以使用外键来约束,也可以在业务层进行维护,这里就不使用外键了。

update_time 字段还可以设置为根据当前时间戳进行更新,这样在业务层修改了数据,可以不用自己设置更新时间。

项目构建

直接用Srping Initializer快速生成我们的项目结构,选择的模块有:

Spring Web:Web模块

DevTools:热部署

Lombok:可以帮我们自动生成getter&setter方法等

Thymeleaf:模板引擎

MySQL Driver:mysql驱动包

还有持久层的框架,我这里使用Mybatis-plus,需要自己引入

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>

AOP模块: 这个现在也需要自己引入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

这样,我们项目的准备工作大致是完成了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343