Spring boot 搭建個人博客系統(一)——整體思路

Spring boot 搭建個人博客系統(一)——整體思路

一直想用Spring boot 搭建一個屬於自己的博客系統,剛好前段時間學習了葉神的牛客項目課受益匪淺,乘熱打鐵也主要是學習,好讓自己熟悉這類項目開發的基本流程。

項目源碼:Jblog 
個人主頁:tuzhenyu’s page 
原文地址:Spring boot 搭建個人博客系統(一)——整體思路

0. 思路

博客的基本作用就是博主寫文章,讀者瀏覽文章,因此博客的基本功能就是文章的發佈和閱讀;同時爲了方便瀏覽加入主題分類和標籤分類等功能,爲了增加互動加入贊踩和評論等功能;另外爲了博客系統的完整性加入了文章點擊量,熱門文章排行,文章按月歸檔等功能。

博客功能列表爲:

  • 用戶註冊登錄功能
  • Markdown文章發佈功能
  • 文章分頁顯示
  • 文章主題分類
  • 文章標籤/標籤雲
  • 文章點擊量
  • 熱門文章排行
  • 贊踩功能
  • 評論/回覆郵件提醒功能
  • 評論敏感詞過濾
  • Archives/按月歸檔

1. 搭建項目工程

使用IDEA搭建項目工程:File->New->Project->Maven->輸入group和artifact等->Finish

1.1 引入spring boot依賴包

Maven項目是通過pom.xml文件配置工程依賴,項目組織結構等,修改pom.xml文件引入sping boot依賴包和工程開發依賴的包等

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.tzy</groupId>
    <artifactId>blog</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>wenda</name>
    <description>Demo project for Spring Boot</description>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-velocity</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

其中,引入spring-boot-devtools依賴是爲了方便工程開發,比如靜態文件修改之後無需重新運行整個工程,只需要重新編譯修改的文件。

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

另外,引入spring-boot-velocity依賴作爲Web工程的模板引擎,用來將後端數據渲染到HTML頁面再傳輸到前端瀏覽器顯示。模板引擎的誕生是爲了將顯示與數據分離,從Sevlet開發時的數據頁面混雜在一起變成了現在的數據和顯示分離,從而也將頁面渲染分成了前端渲染和後端渲染;後端渲染主要就是通過模板引擎將後端數據填充到模板頁面中用來傳輸到前端瀏覽器顯示,前端渲染主要是瀏覽器對頁面CSS樣式和JS動作的渲染。 
模板引擎作用

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

同時,引入spring-boot-web依賴作爲工程Web開發的基礎包,Webk開發需要的一些註解,接口,類等都在這個包中。

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

1.2 工程結構

項目Web程序的搭建基於MVC的設計模式,即模型(Model)—視圖(View)—控制器(Controller)。控制器用來接收請求,發送響應;視圖用來渲染顯示,模型用作表徵數據實體。因此搭建工程結構如下圖所示: 
工程結構圖

2. 搭建數據庫

建好數據庫用於存儲博客系統數據。創建user表用於存儲系統用戶信息,創建ticket表用於存儲用戶登錄的ticket信息,創建aricle表用於存儲文章信息,創建tag表用於存儲標籤信息,創建article_tag表用於存儲文章標籤關係信息,創建comment評論表用於存儲文章評論信息。

table describe
user 用戶信息表
ticket 登錄信息表
aricle 文章表
tag 標籤表
article_tag 文章標籤關係表
comment 評論表

具體的表結構和對應的實體類在接下來應用中會逐步提到。

3. 總結

完成項目搭建,從下一篇開始逐步講解系統的功能模塊。

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u013967175/article/details/77429622

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章