SpringBoot整合SSM开发的微服务打包成docker镜像运行
1. 案例说明
案例说明:
SpringBoot整合SSM与Docker的微服务,并对简单的一张表使用RESTFul Api进行CRUD操作 ,然后打包成docke镜像在docker容器中运行,为其他应用提供服务的案例。
声明:因为没有与Spring Cloud体系整合,这里说微服务可能不太恰当。大牛请绕过,这里只是作为学习过程中的小笔记,大神们感觉有不合理的地方烦请指点一二。
2. 开发及测试环境
- Intellij IDEA 2018.3.4
- jdk 8;
- MySQL 5.7.25;
- Maven 3.6.0;
- SpringBoot 2.1.4;
- Swagger2 2.9.2;
- Centos 7.6
- Docker version 18.09.4 (安装在Centos中)
3. 创建数据库及新建项目
3.1 创建数据库及数据表
# 1.创建数据库springBootSsm
create schema if not exists springBootSsm collate utf8_general_ci;
# 2. 切换到springBootSsm数据库
use springBootSsm;
# 3. 创建一张tb_user表
create table if not exists tb_user
(
id int auto_increment comment '自增主键' primary key,
user_name varchar(50) null comment '用户名',
password varchar(50) null comment '密码',
email varchar(50) null comment '邮箱'
);
3.2 在Intellij IDEA中新建Springboot项目
- 使用IDEA提供的SpringBoot初始化向导新建一个maven 项目,打包类型选择为jar,如下图:
- 点
Next
在Dependencies中选择相关依赖
- 在Core依赖中选中Lobmbok
- 在Web依赖中选中Web
- 在SQL依赖中选中MySQL和MyBatis
3.3 在POM文件中添加其他依赖
- 添加swagger2及swagger-ui的依赖
- 由于我的MySQL服务器版本是5.7.25的,而SpringBoot2.1.4默认自动配置了8.x版本的MySQL驱动,所以为了开发中不报错,在POM文件中改下MySQL驱动的版本,改为5.1.47
- 在POM文件中的plugins中引入docker-maven-plugin,使用说明请查看GitHub
- 整个pom.xml文件内容如下:
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yuan</groupId>
<artifactId>springboot-ssm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-ssm</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<!-- 指定远程docker的位置,开启远程docker的2375端口 -->
<dockerHost>http://192.168.31.176:2375</dockerHost>
<!-- 指定docker镜像的tag,不指定默认为latest -->
<dockerImageTag.version>1.0</dockerImageTag.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- springBoot 2.1.4 默认自动配置的mysql版本为8.x的,由于我的数据库用的是5.7.x的,所以驱动改为5.1.47 -->
<version>5.1.47</version<