Docker+SpringBoot+Mybatis+thymeleaf的Java博客系統開源啦

做者:13
GitHub:https://github.com/ZHENFENG13
版權聲明:本文爲原創文章,未經容許不得轉載。mysql

項目演示視頻:https://www.bilibili.com/video/av52551095 git

我的博客

對於技術人員來講,擁有本身的我的博客應該是一件使人嚮往的事情,能夠記錄和分享本身的觀點,想到這件事就以爲有意思,可是剛開始寫博客的時候腦海中是沒有搭建我的博客這一想法的,由於剛起步的時候連我都不清楚寫博客能堅持到第幾篇,不過隨着時間的推移,博客量的增長,搭建一個私人博客網站的想法就愈來愈強烈,獨立開發,獨立維護,而後根據須要一點點的再往項目中添加其餘功能,這種感受雖然沒有體會過,不過應該會挺酷的github

一邊工做,一邊更新ssm-maven的代碼和博客,其實這些工做所佔用的時間點很密集,足夠讓我忙的找不着北了,因爲時間緣由也拖更了很多博客。就是在這種狀況下,我另外一邊還在爲本身的博客我的站作準備,修改了Tale項目,作了大量的編碼工做,而後如今又開始爲這個項目的上線及相應的介紹博文作準備,也是有點傻勁兒的。sql

OK,說了這麼多,確定不少人以爲我在自詡,沒錯,我就是在誇我本身,由於真的挺辛苦的,有的時候本身仍是要給本身一點掌聲和自我鼓勵的,否則我都不知道我作了這麼可能是爲了什麼,哈哈哈哈哈。docker

選擇Tale做爲模板的緣由及我的想法

開源的商業博客平臺不少,優秀之做也天然很多,不過通常都是商業平臺,像開發人員的話,可能更追求靈活性及可維護行,所以本身開發一個博客平臺或者在優秀的開源博客進行二次開發更好。巧合的是,當我在構思該如何着手這方面工做的時候,看到了一篇關於Java開源博客系統Tale的介紹博文,當時公司的工做也多,所以收藏了起來,一段時間以後纔去研究,而後開始按照本身的想法去改造進行了二次開發,這個後面再說,仍是說說Tale博客系統,當我打開這個博客網站的時候,目光瞬間就被吸引住了,簡單、美觀、大方,感受看上去特別的舒服,炎炎夏日中的一件白襯衫,清爽,潔白,真的是第一眼就喜歡上了這個博客。接着就去研究了項目的部署(過程不表),體驗了一下後臺功能,做爲一個博客模板來講功能是較爲齊全的,基本可以知足私人博客網站的需求,所以就打算將此係統來做爲本身的我的博客網站模板。shell

首頁的效果以下圖所示,因爲原Tale網站沒法打開就沒法看到Tale的效果圖了,此截圖爲個人網站首頁圖片,模板是同樣的,相信你看到這張效果圖也會喜歡上這個博客的:
13Blog首頁效果圖數據庫

至於爲何又花了一個多月的時間進行二次開發,以至於5月13日才上線,有如下緣由:緩存

  • 原項目是使用Blade框架進行開發
  • 域名及雲服務器購買,網站的ICP備案
  • 整合docker、docker-compose
  • install流程修改
  • 部分功能修改
  • 工做太忙,沒法所有投入
  • 恰好是13號,對,13

原Tale博客後臺的系統設置中,有關閉「容許從新安裝」的選項,這個默認設置爲「關閉」,可是實際仍是可以進入安裝頁面,若是有網友可以猜出博主的數據庫用戶名和密碼的話,估計就能把對方的博客給一鍋端了。如今這個問題應該是修復了,可是3月份剛看到這個項目的時候是存在這個問題的,所以也就動了修改的心思。
install過程
install過程安全

另一個緣由,就是代碼裏的install模塊,下載下來運行以後,總以爲這個過程很彆扭,首先,這是一個私人的博客系統,數據庫的相關配置應該是肯定了的,不出意外的話應該不會有改動的,直接寫在代碼裏應該更好,我的感受install模塊中初始化數據庫步驟的意義並非很大甚至有些多餘(我的見解),另外就是直接暴露出這個頁面和接口地址並非特別安全,所以就想重寫這個過程。bash

這一個多月的時間裏作了如下修改:首先是項目總體由Blade框架開發改造爲SpringBoot+Mybatis開發,接着是整合了Docker使得部署簡易化,其次就是徹底刪除了原來的install過程,改成由docker-compose實現的一句腳本命令完成數據庫的初始化及項目啓動,無需多餘操做,主要參考了talemy-blog-project項目。

整合Docker簡化部署過程

原來的部署過程有:

  • 搭建Java運行環境,
  • 安裝mysql數據庫,
  • 初始化數據,
  • 運行jar包。

其實也沒有太多的步驟,可是那段時間恰好在上手Docker,所以就特別的想在項目中整合Docker,檢驗一下本身的知識掌握程度,同時也使得部署的步驟更少,可是刪除了install過程後,又忍不住思考是否能讓mysql數據庫安裝及數據的初始化也經過Docker來實現,就不須要人爲的再去搭建數據庫和運行數據庫腳本了(其實就是懶),這個實現過程花費時間較長,最終經過docker-compose及一些shell腳本命令實現了整個過程,只要運行一行shell啓動腳本命令便可實現Mysql數據庫的建立、數據導入、Mysql容器的建立及啓動、blog容器建立及啓動、兩個容器的鏈接交互、項目啓動。
代碼結構圖

啓動腳本以下:

#!/usr/bin/env bash

set -e

mvn clean install -Dmaven.test.skip=true

# 中止原先運行的容器
docker-compose stop
docker-compose rm -f

#刪除名稱爲none的鏡像
docker images|grep none|awk '{print $3 }'|xargs docker rmi

# 使用docker-compose啓動多容器應用
docker-compose up --build -d

# 日誌
docker-compose logs -f

代碼太多啦,就不放上來了,之後有時間的話會針對不一樣的功能和技術作詳細介紹的,接下來是賞圖時間:

首頁:
首頁
文章詳情頁:
文章頁
登陸頁:
登陸頁
文章列表頁:
文章列表頁
文章編輯頁:
文章編輯頁
分類編輯:
分類編輯

結語

推薦一下本身的達人課,感興趣的朋友能夠看一下:SSM搭建精美實用的管理系統

gitchat

我的對這個博客系統仍是挺滿意的,之後也會陸陸續續添加功能進來,好比搜索引擎啊,緩存功能,ELK日誌系統等等,進一步來完善這個系統,固然ssm項目的進階篇近期可能就要拖更了,有時間再寫吧。

這是個人我的博客地址,歡迎你們去瀏覽、指導和批評。

因爲這個是我的站點,帳號和密碼就不公佈了,可是這個博客系統的代碼是開源的,能夠到個人GitHub倉庫裏下載,地址在這裏,有問題也能夠在這裏提出來,若是以爲項目還行的話,給項目一個star吧。

沒法訪問GitHub,也能夠到開源中國碼雲下載項目代碼。

相關文章
相關標籤/搜索