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,也能够到开源中国码云下载项目代码。

相关文章
相关标签/搜索