个人博客
对于技术人员来说,拥有自己的个人博客应该是一件令人向往的事情,可以记录和分享自己的观点,想到这件事就觉得有意思,但是刚开始写博客的时候脑海中是没有搭建个人博客这一想法的,因为刚起步的时候连我都不清楚写博客能坚持到第几篇,不过随着时间的推移,博客量的增加,搭建一个私人博客网站的想法就越来越强烈,独立开发,独立维护,然后根据需要一点点的再往项目中添加其他功能,这种感觉虽然没有体会过,不过应该会挺酷的。
一边工作,一边更新ssm-maven的代码和博客,其实这些工作所占用的时间点很密集,足够让我忙的找不着北了,由于时间原因也拖更了不少博客。就是在这种情况下,我另一边还在为自己的博客个人站做准备,修改了Tale项目,做了大量的编码工作,然后现在又开始为这个项目的上线及相应的介绍博文做准备,也是有点傻劲儿的。
OK,说了这么多,肯定很多人觉得我在自夸,没错,我就是在夸我自己,因为真的挺辛苦的,有的时候自己还是要给自己一点掌声和自我鼓励的,不然我都不知道我做了这么多是为了什么,哈哈哈哈哈。
选择Tale作为模板的原因及个人想法
开源的商业博客平台很多,优秀之作也自然不少,不过一般都是商业平台,像开发人员的话,可能更追求灵活性及可维护行,因此自己开发一个博客平台或者在优秀的开源博客进行二次开发更好。巧合的是,当我在构思该如何着手这方面工作的时候,看到了一篇关于Java开源博客系统Tale的介绍博文,当时公司的工作也多,因此收藏了起来,一段时间之后才去研究,然后开始按照自己的想法去改造进行了二次开发,这个后面再说,还是说说Tale博客系统,当我打开这个博客网站的时候,目光瞬间就被吸引住了,简单、美观、大方,感觉看上去特别的舒服,炎炎夏日中的一件白衬衫,清爽,洁白,真的是第一眼就喜欢上了这个博客。接着就去研究了项目的部署(过程不表),体验了一下后台功能,作为一个博客模板来说功能是较为齐全的,基本能够满足私人博客网站的需求,因此就打算将此系统来作为自己的个人博客网站模板。
首页的效果如下图所示,由于原Tale网站无法打开就无法看到Tale的效果图了,此截图为我的网站首页图片,模板是一样的,相信你看到这张效果图也会喜欢上这个博客的:
至于为什么又花了一个多月的时间进行二次开发,以致于5月13日才上线,有以下原因:
- 原项目是使用Blade框架进行开发
- 域名及云服务器购买,网站的ICP备案
- 整合docker、docker-compose
- install流程修改
- 部分功能修改
- 工作太忙,无法全部投入
- 刚好是13号,对,13
原Tale博客后台的系统设置中,有关闭「允许重新安装」的选项,这个默认设置为「关闭」,但是实际还是能够进入安装页面,如果有网友能够猜出博主的数据库用户名和密码的话,估计就能把对方的博客给一锅端了。现在这个问题应该是修复了,但是3月份刚看到这个项目的时候是存在这个问题的,因此也就动了修改的心思。
另外一个原因,就是代码里的install模块,下载下来运行之后,总觉得这个过程很别扭,首先,这是一个私人的博客系统,数据库的相关配置应该是确定了的,不出意外的话应该不会有改动的,直接写在代码里应该更好,个人感觉install模块中初始化数据库步骤的意义并不是很大甚至有些多余(个人看法),另外就是直接暴露出这个页面和接口地址并不是特别安全,因此就想重写这个过程。
这一个多月的时间里做了以下修改:首先是项目整体由Blade框架开发改造为SpringBoot+Mybatis开发,接着是整合了Docker使得部署简易化,其次就是完全删除了原来的install过程,改为由docker-compose实现的一句脚本命令完成数据库的初始化及项目启动,无需多余操作。
整合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
代码太多啦,就不放上来了,以后有时间的话会针对不同的功能和技术做详细介绍的,接下来是赏图时间:
首页:
文章详情页:
登录页:
文章列表页:
文章编辑页:
分类编辑:
结语
个人对这个博客系统还是挺满意的,以后也会陆陆续续添加功能进来,比如搜索引擎啊,缓存功能,ELK日志系统等等,进一步来完善这个系统,当然ssm项目的进阶篇近期可能就要拖更了,有时间再写吧。
这是我的个人博客地址,欢迎大家去浏览、指导和批评。
由于这个是个人站点,账号和密码就不公布了,但是这个博客系统的代码是开源的,可以到我的github仓库里下载,地址在这里,有问题也可以在这里提出来,如果觉得项目还行的话,就帮我打颗星吧。
如果你无法访问github,也可以到码云下载项目代码。
相关推荐
这是一个基于Docker、SpringBoot、Mybatis和Thymeleaf技术栈构建的Java博客系统源码。这个系统展示了如何将这些流行的开源技术整合在一起,创建一个功能完善的Web应用。接下来,我们将深入探讨这些技术及其在该系统...
博客系统已经上线的编辑器使用markdown如果不会docker有非docker的部署方式,默认的是非docker部署的maven构建
这是一个基于Java技术栈,具体包括SpringBoot、MyBatis、MySQL、Thymeleaf和jQuery的图书借阅管理系统源码项目。以下将详细介绍这个系统的关键技术和实现原理。 **SpringBoot** SpringBoot是Spring框架的一个扩展,...
《基于SpringBoot + Mybatis + Thymeleaf + MySQL开发的购书商城系统》 本项目采用了一系列现代Java技术栈,构建了一个完整的购书商城系统,旨在提供一个高效、稳定且用户友好的在线购物平台。下面将详细阐述其中...
一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等...
《构建基于Spring Boot + Thymeleaf + MySQL + Security的在线答题系统》 在现代互联网应用开发中,Spring Boot以其简洁、高效的特性成为了Java开发者首选的框架。本项目结合Thymeleaf模板引擎、MySQL数据库以及...
【标题】"java+springboot闲一品.rar" 指的是一个包含了关于Java和SpringBoot技术栈的资源集合,可能是一个项目实例或者教程材料。这个压缩包的名称"闲一品"可能代表着项目的名称或者主题,暗示了它可能是为了教学、...
My Site是由Docker+SpringBoot2.0+Mybatis+thymeleaf等技术实现的个人网站,本来是一个docker和springboot的实战练习项目,目前已经开源,功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验,如果觉得...
在项目中,你可以添加需要的依赖,如Web、Thymeleaf(用于模板引擎)或者MyBatis(数据库访问框架)。对于Eclipse,同样需要安装Spring Tools Suite插件来支持Spring Boot项目的创建和管理。 接着是代码讲解部分,...
My Site是由Docker+SpringBoot2.0+Mybatis+thymeleaf等技术实现的个人网站,本来是一个docker和springboot的实战练习项目,目前已经开源,功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验,如果觉得...
在实际应用中,"lamp-boot"可能集成了MyBatis或JPA作为持久层框架,Thymeleaf或Freemarker作为模板引擎,Spring Security或Shiro进行权限控制,以及Spring Cloud组件实现微服务间的通信。通过阅读和研究这些源码,...
我的博客我的博客是由Docker + SpringBoot + Mybatis + thymeleaf等技术实现的Java博客系统,博客模板是大神的开源项目 。本项目主要代码某些某高级工程师,目前已经开源,功能齐全,部署简单及完善的代码,一定会给...
这是一个基于Java技术栈,具体为SpringBoot、Mybatis和layui框架构建的学生成绩管理系统的源代码。这个系统可以作为毕业设计的参考,展示了如何将这些流行的技术整合在一起开发一个实际的应用。 1. **SpringBoot**:...
这是一个基于SpringBoot、MyBatis和Redis技术栈构建的图像素材管理系统。该系统设计与实现主要涉及以下几个核心知识点: 1. **SpringBoot**: SpringBoot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始...
【标题】"sptxxyy-心理健康预约-springboot+mybatis" 是一个基于SpringBoot和MyBatis框架的心理健康预约系统项目。这个系统旨在为用户提供方便的心理咨询服务预约功能,利用现代技术来优化心理健康服务的流程。 ...
包括:微服务、电商、支付宝微信支付、Java博客、后台管理系统、前舱分离系统、高仿项目、视频类后台管 微服务 推荐7个牛哄哄Spring Cloud实战项目 Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速...
这是一个基于SpringBoot和Mybatis框架构建的博客论坛交流平台的毕业设计项目。在这个项目中,开发者利用了SpringBoot的快速开发特性以及Mybatis的灵活数据访问能力,为用户提供了一个功能完善的在线讨论和分享知识的...
本系统采用先进的技术栈,包括SpringBoot、MyBatis和MySQL,构建了一个高效、稳定且易于维护的平台。下面将详细阐述这三个核心组件以及它们在系统中的作用。 **SpringBoot** SpringBoot是Spring框架的一个扩展,它...
这是一个基于SpringBoot、MyBatis和MySQL数据库技术构建的毕业设计项目——飞机订票系统。这个系统涵盖了在线预订、查询、支付以及管理等核心功能,是学习和实践Web开发技术的良好实例。 首先,SpringBoot是Spring...
《基于JavaWeb的订餐系统:SpringBoot与Thymeleaf框架详解》 在现代互联网技术的推动下,开发高效、便捷的在线订餐系统已成为餐饮业不可或缺的一部分。本篇文章将深入探讨一个基于JavaWeb的订餐系统,该系统利用...