# springboot-layui-mysql **Repository Path**: wefamily/springboot-layui-mysql ## Basic Information - **Project Name**: springboot-layui-mysql - **Description**: 一个使用SSM架构,集成Layui,MySQL,搭建一个学习的示例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 3 - **Created**: 2018-10-29 - **Last Updated**: 2023-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBoot+Layui+MySQL(简称SLM) ## 环境组成 * Java * Maven * MySQL * Layui * IntelliJ IDEA * Navigation Premium * Google Chrome * Docker ## 目录结构 * slm是项目目录 * sql是初始化数据库的代码 * imgs是存放效果图 * readme.md是介绍文档 ## 开发环境 1. 修改本机的hosts文件,在最后一行下面增加`127.0.0.1 mysql` 2. IntelliJ IDEA打开`slm`即可 3. 前提:数据库配置的端口是`3306`,数据库账号是`root`,密码是``,否则需要修改`src/main/resources/application.yml`中的`DataSource`的`username`和`password`字段 4. 在Navigation Premium中连接上MySQL数据库,使用`sql/slm.sql`初始化数据库 5. 修改工程中的数据库链接密码`slm/src/main/resources/application.yml`中`spring > datasource > password` 6. 找到`src`下的`main/java/com/brucekong/slm/`下的`SlmApplication.java`,右击`run 'SlmApplication'` 7. 在Google Chrome中打开`http://localhost:8080/`即可打开登录页面 ### Docker部署 #### Docker基本命令 由于ibrucekong/slm是公有镜像,能查询、推送、拉取等操作。 基本命令(知识点): * `$ docker ps` # 查看运行的镜像 * `$ docker images` # 查看所有镜像 * `$ docker rename origin_name wanted_name` # 修改容器的name * `$ docker logs -f container_name` # 查看某个容器的log信息 * `$ docker tag image_id repository:tag` # 修改镜像的tag * `$ docker search [docker-image-name]` # 查询public的镜像 * `$ docker pull ibrucekong/slm` # 拉取镜像 * `$ docker build -t ibrucekong/slm:latest` # 构建镜像 * `$ docker run -it -p 8080:8080 ibrucekong/slm:latest` # 前面8080是真正运行的端口,后面的8080是内部端口,访问localhost:8080(这里的8080是前面的),ibrucekong/slm是镜像名称,latest是tag * `$ docker commit -m "comment" -a="author" e218edb10161 ibrucekong/slm:latest` # e218edb10161 是容器ID(run起来后,使用docker ps查看,然后停下来,再去push),-a指镜像作者,ibrucekong/slm是镜像名称,latest是tag * `$ docker push ibrucekong/slm:latest` # 推送镜像 latest是tag,如果提示超时,重试即可 * `$ docker inspect ibrucekong/slm` # 验证镜像 * `$ docker network create --subnet=172.18.0.0/16 slm` # 创建172.18.0.0子网段网络 命名为 slm * `$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id 或 contatiner_name` # 查看容器的运行IP * 去[https://hub.docker.com/r/ibrucekong/slm/](https://hub.docker.com/r/ibrucekong/slm/)查看是否已经推送成功 拉取数据库: `docker pull mysql` # 如果本地没安装mysql,直接使用docker上的 修改数据库信息(知识点): * 如果Navicat Premium链接数据库报错,提示`2059 - authentication plugin 'caching_sha2_password'`,则有两种方法可以解决: 1. 配置MySQL ```cmd # 先修改MySQL的配置文件my.ini或my.cnf,将default_authentication_plugin=mysql_native_password # 执行下面语句,进入docker-mysql的linux环境,可以进一步操作数据库 $ docker exec -it docker-mysql /bin/bash # 执行下面语句,然后输入密码,进入数据库操作命令行 $ mysql -u root -p # 将'你要修改的密码'中的汉字改为你要修改的密码,回车 $ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要改成的密码'; ``` 2. 升级Navicat Premium 将Navicat Premium升级到12.0.28以上版本 #### 镜像的提交推送 推送项目包: 1. 构建镜像 `mvn clean package docker:build` 2. 测试镜像 `docker run --name slm -it -p 8080:8080 ibrucekong/slm` 使用`docker ps`获取容器ID并记下,比如ID为`061463b9b32d`。 访问[(http://localhost:8080/)](http://localhost:8080/),其中前面的8080是访问的端口,后面的8080是docker内部启动端口。 3. 提交镜像 `docker commit -m "提交日志" -a="ibrucekong" 061463b9b32d ibrucekong/slm:latest` 4. 推送镜像 `docker push ibrucekong/slm:latest` 推送数据库: 1. 测试数据库 2. 提交镜像 3. 推送镜像 #### Docker部署 仓库在[ibrucekong](https://hub.docker.com/u/ibrucekong/)用户下,public类型,可以通过`docker pull ibrucekong/slm:tag`获取。 1. 拉取镜像 ```cmd $ docker pull ibrucekong/slm:latest # 拉取项目镜像,不加:latest,默认latest ``` 2. 运行镜像 ```cmd # 数据库部署(前提有Git环境) # Windows设置语句,在git bash中切换到D:\database\,执行以下代码 $ git clone https://gitee.com/wefamily/mysql.git # 使用docker运行要达到持久化,就要连接到本地的mysql数据库,使用 -v $ docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD= -v d:/database/mysql:/var/lib/mysql -d mysql # Ubuntu设置语句,在git bash中切换到~/Documents/slm/,执行以下代码 $ git clone https://gitee.com/wefamily/mysql.git $ docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD= -v ~/Documents/slm/mysql:/var/lib/mysql -d mysql # 在navicat中使用slm.sql文件还原数据库(数据库sql文件在sql文件夹中) # SLM项目部署 $ docker run -it -p 8080:8080 --name docker-slm --link docker-mysql:mysql ibrucekong/slm # 再运行项目,关键 --link docker-mysql:mysql 的mysql字段 ``` 3. 测试系统 在浏览器中访问[(http://localhost:8080/)](http://localhost:8080/),系统即可正常运行。 在浏览器中访问[(http://localhost:8080/doc.html)](http://localhost:8080/doc.html),访问接口文档。 ## DONE * 2019.01.30 完成大部分Layui前端页面接口数据对接 * 2019.01.12 增加Layui前端页面,增加lombok注解,增加Swagger接口文档生成注解;增加菜单生成接口;调整资源引用路径 * 2018.11.15 更改包名 * 2018.11.14 完成docker部署,tag:0.0.2 * 2018.11.13 解决登录时点击两次的bug * 2018.11.07 集成MySQL持久化 * 2018.11.06 Docker的集成,集成在ibrucekong用户下,仓库slm,可以通过`docker pull ibrucekong/slm`获取 * 2018.10.29 Springboot的搭建,MySQL的集成,登录界面的嵌入 ## TODO * 完善忘记密码面板 * 逐步设计数据库(现在只是完成了数据的拉取,数据库逻辑并未设计) * 编写接口实现Layui的admin 1.0.0 pro版本的剩余接口(高级->通讯系统:加好友,发消息) ## 效果图展示 * 系统展示界面 ![登录](./imgs/login.png) ![main](./imgs/main.png) * 接口文档展示界面 ![DOC](./imgs/doc.png)