This website requires JavaScript.

使用 Docker 部署 Spring-Boot+Vue 博客系统

源码地址:Fame


在今年年初的时候,完成了自己的个 Fame 博客系统的实现,当时也做了一篇博文 Spring-boot+Vue = Fame 写 blog 的一次小结 作为记录和介绍。从完成实现到现在,也断断续续的根据实际的使用情况进行更新。

只不过每次上线部署的时候都觉得有些麻烦,因为我的服务器内存太小,每次即使只更新了前台部分 (fame-front) 的代码,在执行npm build的时候都还必须把我的后端服务 (fame-server) 的进程关掉,不然会造成服务器卡死(惨啊)。

而且这个项目是前后端分离的,博客前台页面还为了 SEO 用了Nuxt框架,假如是第一次部署或者要服务器迁移的话,麻烦的要死啊,部署一次的话要以下步骤

  1. 安装 mysql,修改相关配置文件,设置编码时区等,然后重启
  2. 下载安装 java,配置 java 环境
  3. 下载安装 maven,配置 maven 环境
  4. 下载安装 nginx,修改配置文件,设计反向代理等
  5. 启动 spring-boot 项目
  6. 打包 vue 项目,npm install,npm run build
  7. 启动 nuxt 项目,npm install,npm run start

如果能够顺利的完成这七个步骤算是幸运儿了,假如中间哪个步骤报错出了问题,可能还要回头查找哪个步骤出了问题,然后又重新部署。

我选择死亡

在这些需求面前,Docker 就是解决这些问题的大杀器。无论是其虚拟化技术隔离各个容器使其资源互不影响,还是一致的运行环境,以及 docker-compose 的一键部署,都完美的解决了上述问题。

项目地址:Fame

Read more

从零开始实现一个简易的 Java MVC 框架(九)--优化 MVC 代码

前言

从零开始实现一个简易的 Java MVC 框架(七)--实现 MVC 中实现了* doodle *框架的 MVC 的功能,不过最后指出代码的逻辑不是很好,在这一章节就将这一部分代码进行优化。

优化的目标是 1. 去除DispatcherServlet请求分发器中的 http 逻辑代码;2. 将ControllerHandlerResultRender中代码按功能细分出来,使其各司其职。

Read more

从零开始实现一个简易的 Java MVC 框架(八)--制作 Starter

spring-boot 的 Starter

一个项目总是要有一个启动的地方,当项目部署在 tomcat 中的时候,经常就会用 tomcat 的startup.sh(startup.bat)的启动脚本来启动 web 项目

而在 spring-boot 的 web 项目中基本会有类似于这样子的启动代码:

@SpringBootApplication
public class SpringBootDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}
Read more

从零开始实现一个简易的 Java MVC 框架(七)--实现 MVC

前言

标题是‘从零开始实现一个简易的 Java MVC 框架’,结果写了这么多才到实现 MVC 的时候。.. 只能说前戏确实有点多了。不过这些前戏都是必须的,如果只是简简单单实现一个 MVC 的功能那就没有意思了,要有 Bean 容器、IOC、AOP 和 MVC 才像是一个'框架'嘛。

Read more

从零开始实现一个简易的 Java MVC 框架(六)--加强 AOP 功能

前言

在前面 从零开始实现一个简易的 Java MVC 框架(四)--实现 AOP从零开始实现一个简易的 Java MVC 框架(五)--引入 aspectj 实现 AOP 切点 这两节文章中已经实现了 AOP 功能并且引用 aspectj 表达式实现切点的功能,这篇文章继续完善 doodle 框架的 AOP 功能。

在前面的文章中实现的 AOP 功能时,目标类都只能被一个切面代理,如果想要生成第二个代理类,就会把之前的代理类覆盖。这篇文章就要来实现多个代理的功能,也就是实现代理链。

Read more