• k8s 实战篇 - 镜像打包部署 - springboot&mysql - 3


    springboot&mysql部署启动

    这一章主要介绍怎么在k8s上面部署及启动springboot&mysql项目,现在就来使用spring开发一个查询数据库的项目。在k8s 实战篇 - mysql部署中有介绍如何搭建mysql及持久化数据。在此基础上使用spring boot框架对数据库查询,然后返回客户端操作结果。

    1、编写springboot代码

    我们可以参考mybatis-plus使用说明,编写java代码,参考快速开始 | MyBatis-Plus;spring boot项目初始化可以参考minikube 实战篇 - 镜像打包部署 - 1

    1.1、首先在pom.xml中引入如下配置:

    <dependency>
       <groupId>com.baomidougroupId>
       <artifactId>mybatis-plus-boot-starterartifactId>
       <version>3.5.2version>
    dependency>
    
    <dependency>
       <groupId>mysqlgroupId>
       <artifactId>mysql-connector-javaartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.2、编写实体类及Mapper

    User实体类,这个实体类在文章k8s 实战篇 - mysql部署 - 2可以找到建表信息

    package com.docker.demo.data;
    
    import lombok.Data;
    import lombok.ToString;
    
    @Data
    @ToString
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    UserMapper文件是对User表进行数据库,可以对User表进行增删改查操作

    package com.docker.demo.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.docker.demo.data.User;
    
    public interface UserMapper extends BaseMapper<User> {
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    HelloContoller是一个入口类。之前在minikube 实战篇 - 镜像打包部署 - 2中,有介绍及使用过,可以参考。在原来的基础上增加了,查询用户所有信息的代码。如下:

    package com.docker.demo;
    
    import com.docker.demo.data.User;
    import com.docker.demo.mapper.UserMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Arrays;
    import java.util.List;
    
    @RestController
    public class HelloContoller {
    
        @Autowired
        UserMapper userMapper;
    
        @GetMapping("hello")
        public String helloworld(){
            return "hello world!";
        }
        
        @GetMapping("queryUser")
        public String queryUser(){
            List<User> users = userMapper.selectList(null);
            String userStrs = Arrays.toString(users.toArray());
            return userStrs;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    2、连接数据库查询

    代码写完之后需要增加对数据裤的配置,配置文件:application.yaml。配置如下:

    # DataSource Config
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://mysql.default.svc.cluster.local:3306/docker-demo?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
        username: root
        password: 123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    其中url配置成了:jdbc:mysql://mysql.default.svc.cluster.local:3306/docker-demo,在地址信息中可以直接使用mysql作为链接路径。通过..svc.cluster.local进行访问,例如:mysql.default.svc.cluster.local。

    3、部署项目&启动项目

    可以参考minikube 实战篇 - 镜像打包部署 - 1minikube 实战篇 - 镜像打包部署 - 2里面有讲解如何进行项目的打包及上传镜像服务到dockerhub,完成之后进行部署,如下:

    PS C:\Users\smy1102> kubectl create deployment docker-demo --image=halo26812/docker-demo:0.0.2
    deployment.apps/docker-demo created
    PS C:\Users\smy1102> kubectl expose deployment docker-demo --type=NodePort --port=8080
    service/docker-demo exposed
    
    • 1
    • 2
    • 3
    • 4

    4、访问查询数据库接口

    部署成功之后,通过访问地址:http://{ip}:{port}/queryUser 进行访问:
    在这里插入图片描述

    访问成功。

  • 相关阅读:
    CAP定理下:Zookeeper、Eureka、Nacos简单分析
    黑马学员放弃20K月薪投身比亚迪,是去「车间」打螺丝吗?
    Java.lang.Class类 getModifiers()方法有什么功能呢?
    python 获取apk信息
    CodeWhisperer proxy代理连不上(解决)
    《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D曲面图
    Vulnhub | DC: 9 |【实战】
    #1 Numpy & Pandas
    阿里3年被裁,赔偿n+3,到手30多万!感谢阿里让我人生开挂!
    MySQL数据库基本操作
  • 原文地址:https://blog.csdn.net/exception_class/article/details/126850967