日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

springboot连接容器内mysql_docker部署springboot项目,连接mysql容器

發布時間:2025/3/19 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot连接容器内mysql_docker部署springboot项目,连接mysql容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

入手docker部署springboot項目,記錄一下學習過程,過程很簡單,主要是部署過程中的收獲,下面跟我一起來吧

1.創建一個springboot項目,pom引入maven-docker-plugin依賴

com.spotify

docker-maven-plugin

0.4.13

${docker.image.prefix}-docker-demo:0.0.1

${project.basedir}/src/main/docker

/

${project.build.directory}

${project.build.finalName}.jar

完成pom如下

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.7.RELEASE

com.tz

docker

0.0.1-SNAPSHOT

docker

Demo project for Spring Boot

1.8

tz

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-data-jpa

org.projectlombok

lombok

1.18.8

provided

org.springframework.boot

spring-boot-maven-plugin

com.spotify

docker-maven-plugin

0.4.13

${docker.image.prefix}-docker-demo:0.0.1

${project.basedir}/src/main/docker

/

${project.build.directory}

${project.build.finalName}.jar

tz-docker-demo

2.編寫Dockerfile 文件,文件位置src/main/docker/Dockerfile,文件內容如下

FROM frolvlad/alpine-oraclejdk8:slim

VOLUME /tmp

# 下面jar包的名稱為springboot項目打包完成的jar包名稱

ADD tz-docker-demo.jar app.jar

EXPOSE 8761

ENTRYPOINT ["java","-jar","/app.jar"]

3.集成jpa,方便測試mysql連通性,pom依賴第一步已經給出,下面是yml文件內容

# server

server:

port: 8081

servlet:

context-path: /boot

# database

spring:

datasource:

url: jdbc:mysql://tz_mysql:3306/mystudy

driver-class-name: com.mysql.cj.jdbc.Driver

username: root

password: root

# jpa

jpa:

hibernate:

ddl-auto: update # 建表策略

show-sql: true #顯示SQL語句

yml文件解析

jdbc:mysql://tz_mysql:3306/mystudy

tz_mysql: 我自己的本地mysql的docker鏡像名稱,此處注意,一會使用命令啟動時連接容器別名要和此處一致

mystudy: 本地mysql數據庫

4.編寫controller

package com.tz.docker;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

import java.util.List;

/**

* @author tz

* @Classname UserController

* @Description

* @Date 2019-08-15 21:08

*/

@RestController

public class UserController {

@Autowired

private UserInfoRepository userInfoRepository;

@RequestMapping("/getUserInfo")

public Object getUserInfo() {

/*

這里有一個大坑:使用getOne()的方法,可以查到數據。但是無法默認轉化成JSON數據,返回接口直接報錯

*/

//UserInfo userInfo = userInfoRepository.getOne(1);

for(int i = 0;i<10;i++){

UserBean userBean = new UserBean();

userBean.setAge(12);

userBean.setBirthday(new Date());

userBean.setCreatedTime(new Date());

userBean.setJob("3333:"+i);

userBean.setSex("1");

userInfoRepository.save(userBean);

}

List all = userInfoRepository.findAll();

return all;

}

}

5.編寫dao

package com.tz.docker;

import org.aspectj.weaver.ast.Var;

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.stereotype.Repository;

/**

* @author tz

* @Classname UserInfoRepository

* @Description

* @Date 2019-08-15 21:06

*/

@Repository

public interface UserInfoRepository extends JpaRepository {

}

6.編寫bean

package com.tz.docker;

import lombok.Data;

import javax.persistence.*;

import java.util.Date;

/**

* @author tz

* @Classname UserBean

* @Description

* @Date 2019-08-15 21:02

*/

@Data

@Entity //注意包名

@Table(name="user_info")

public class UserBean {

@Id

@GeneratedValue(strategy= GenerationType.AUTO)

private Integer id;

private String name;

private Integer age;

private String sex;

private String job;

private Date birthday;

private Date createdTime;

private Date updateTime;

}

7.開始鏡像容器部署,首先打包應用,如果不打包直接構建鏡像會保找不到jar包的錯誤

打包idea中使用maven工具欄

然后第二步build鏡像

用命令就是

mvn clean package docker:build

8.構建成功之后使用docker images查看構建成功的鏡像

9.確認mysql容器運行

10.運行我們構建成功的容器

docker run --rm -p 8081:8081 --name demo --link tz_mysql:tz_mysql tz-docker-demo:0.0.1

命令解析

--rm 運行完刪除容器

-p 端口映射

--name 本鏡像名稱

--link tz_mysql 第一個參數為mysql的docker鏡像名稱,tz_mysql 第二個參數為別名,此處和yml文件中連接mysql的地址保持一致

tz-docker-demo:0.0.1 這個為我們剛剛build的鏡像名稱

11.好了,docker部署springboot項目就是這么簡單,下面看一下成功

瀏覽器輸入 http://localhost:8081/boot/getUserInfo

顯示

總結

以上是生活随笔為你收集整理的springboot连接容器内mysql_docker部署springboot项目,连接mysql容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。