13.(微服务架构)zookeeper+springboot+mybatis+dubbo的整合步骤

1、构建数据库【数据随意】

 

--1.创建部门表 
create table dept
 (
   deptno int(2) unsigned primary key,
   dname varchar(14),
   loc varchar(13)
 );

--2.添加部门数据
insert into dept(deptno,dname,loc) values
(10,'ACCOUNTING','NEW YORK'),
(20,'RESEARCH','DALLAS'),
(30,'SALES','CHICAGO'),
(40,'OPERATIONS','BOSTON');

--3.创建员工表
create table emp
(
   empno int(4) unsigned primary key,
   ename varchar(10),
   job varchar(9),
   mgr int(4),
   hiredate date,
   sal double(7,2),
   comm double(7,2),
   deptno int(2) references dept(deptno)
);

--4.插入数据员工数据
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(7369,'SMITH','CLERK',7902,'1980-12-17',800,null,20),
(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30),
(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30),
(7566,'JONES','MANAGER',7839,'1981-04-02',2975,null,20),
(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30),
(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,null,30),
(7782,'BLAKE','MANAGER',7839,'1981-06-09',2450,null,10),
(7788,'SCOTT','ANALYST',7566,'1987-04-19',3000,null,20),
(7839,'KING','PRESIDENT',null,'1981-11-17',5000,null,10),
(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30),
(7876,'ADAMS','CLERK',7788,'1987-05-23',1100,null,20),
(7900,'JAMES','CLERK',7698,'1981-12-03',950,null,30),
(7902,'FORD','ANALYST',7566,'1981-12-03',3000,null,20),
(7934,'MILLER','CLERK',7782,'1982-01-23',1300,null,10);


--3.员工福利表
create table bonus
(
  ename varchar(10),
  job varchar(9),
  sal double(7,2),
  comm double(7,2)
);

--4.工资等级表
create table salgrade
(
   grade int(10),
   losal double(7,2),
   hisal double(7,2)
);

--5.插入工资等级信息
insert into salgrade(grade,losal,hisal) values
(1,700,1200),
(2,1201,1400),
(3,1401,2000),
(4,2001,3000),
(5,3001,9999);

 

2、构建父级项目

 

 

 

 

 

配置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>

  <groupId>cn.holly</groupId>
  <artifactId>wf2024</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>wf2024</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.release>17</maven.compiler.release>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.11.0</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Optionally: parameterized tests support -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

4、创建common模块

 

 

 

 

4.1 编写vo持久化类 

(1) Dept.java

package cn.holly.vo;

import java.io.Serializable;

public class Dept implements Serializable {
  private Integer deptno;
  private String dname;
  private String loc;

  public Integer getDeptno() {
    return deptno;
  }

  public void setDeptno(Integer deptno) {
    this.deptno = deptno;
  }

  public String getDname() {
    return dname;
  }

  public void setDname(String dname) {
    this.dname = dname;
  }

  public String getLoc() {
    return loc;
  }

  public void setLoc(String loc) {
    this.loc = loc;
  }

  @Override
  public String toString() {
    return "Dept{" +
            "deptno=" + deptno +
            ", dname='" + dname + '\'' +
            ", loc='" + loc + '\'' +
            '}';
  }
}

(2) Emp.java

package cn.holly.vo;

import java.io.Serializable;

public class Emp implements Serializable{
  private Integer empno;
  private String ename;
  private String job;
  private Integer mgr;
  private String hiredate;
  private Double sal;
  private Double comm;
  private Integer deptno;

  public Integer getEmpno() {
    return empno;
  }

  public void setEmpno(Integer empno) {
    this.empno = empno;
  }

  public String getEname() {
    return ename;
  }

  public void setEname(String ename) {
    this.ename = ename;
  }

  public String getJob() {
    return job;
  }

  public void setJob(String job) {
    this.job = job;
  }

  public Integer getMgr() {
    return mgr;
  }

  public void setMgr(Integer mgr) {
    this.mgr = mgr;
  }

  public String getHiredate() {
    return hiredate;
  }

  public void setHiredate(String hiredate) {
    this.hiredate = hiredate;
  }

  public Double getSal() {
    return sal;
  }

  public void setSal(Double sal) {
    this.sal = sal;
  }

  public Double getComm() {
    return comm;
  }

  public void setComm(Double comm) {
    this.comm = comm;
  }

  public Integer getDeptno() {
    return deptno;
  }

  public void setDeptno(Integer deptno) {
    this.deptno = deptno;
  }

  @Override
  public String toString() {
    return "Emp{" +
            "empno=" + empno +
            ", ename='" + ename + '\'' +
            ", job='" + job + '\'' +
            ", mgr=" + mgr +
            ", hiredate='" + hiredate + '\'' +
            ", sal=" + sal +
            ", comm=" + comm +
            ", deptno=" + deptno +
            '}';
  }
}

 

 4.2 编写service接口

(1)EmpService.java

package cn.holly.service;
import cn.holly.vo.Emp;
import com.github.pagehelper.PageInfo;
import java.util.Map;
/**
 * Created by Administrator on 2020/6/8.
 */
public interface EmpService {
    /*各种查询
    * PageInfo分页插件查询,原理是底层帮你自动做分页,在你查询所有的基础上做分页,
    * 如果你查询所有返回值的类型是vo对象类型,则此处PageInfo的返回值类型为具体vo对象类型
    * 如果你查询所有返回值的类型是map类型,则此处PageInfo的返回值类型为map类型*/
    PageInfo<Map<String,Object>> showData(Integer pageno, Emp emp);

    int addEmp(Emp emp);

    int editEmp(Emp emp);

    int delEmp(Integer empno);
}

(2)DeptService.java

package cn.holly.service;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2020/6/8.
 */
public interface DeptService {
    List<Map<String,Object>> optionData();

}

 

5、创建provider(微服的提供者)

 

 

 

 

cn

 

 

 

 

 

 

 

 

5.1 创建服务接口

5.2 创建服务接口的实现类

5.3 创建实体(注意必须要序列化)

5.4 创建mapper接口

5.5 创建mapper接口的映射文件

5.6 编写对应代码

5.7 创建spring-provider.xml(暴露接口的配置文件)

5.8 导入jar

ps:以上步骤随意

3、创建consumer(服务的消费端)

  1. 创建服务接口(注意路径和类名以及方法名必须一模一样,可以复制provider工程中对应的东东)
  2. 创建控制器类 最后使用html+ajax 还是thymeleaf 各位随意
  3. 导入的jar包和服务提供者一样
  4. 最后启动服务提供者和消费端 检查结果
  5. 注意提供者的端口和消费者的端口设置不可以一样
posted @ 2021-03-01 10:47  红酒人生  阅读(181)  评论(0)    收藏  举报