SpringCloud微服务案例,API公共模块和部门VO

2025-10-28 15:27:39

1、在项目工程下新建一个mircoservicecloud-api的maven模块。

<?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>com.gwolf.springcloud</groupId>

  <artifactId>microservicecloud</artifactId>

  <version>1.0-SNAPSHOT</version>

  

  <modules>

    <module>microcloudservice-api</module>

  </modules>

  <packaging>pom</packaging>

  <name>microservicecloud</name>

  <url>http://www.example.com</url>

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <maven.compiler.source>1.8</maven.compiler.source>

    <maven.compiler.target>1.8</maven.compiler.target>

  </properties>

  

  <dependencyManagement>

    <dependencies>

      <dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-dependencies</artifactId>

        <version>Dalston.SR1</version>

        <type>pom</type>

        <scope>import</scope>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-dependencies</artifactId>

        <version>1.5.9.RELEASE</version>

        <type>pom</type>

        <scope>import</scope>

      </dependency>

      <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>6.0.6</version>

      </dependency>

      <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>druid</artifactId>

        <version>1.1.5</version>

      </dependency>

      <dependency>

        <groupId>org.mybatis.spring.boot</groupId>

        <artifactId>mybatis-spring-boot-starter</artifactId>

        <version>1.3.1</version>

      </dependency>

      <dependency>

        <groupId>ch.qos.logback</groupId>

        <artifactId>logback-core</artifactId>

        <version>1.2.3</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-jetty</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <version>1.5.8.RELEASE</version>

        <scope>test</scope>

      </dependency>

      <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>springloaded</artifactId>

        <version>1.2.8.RELEASE</version>

      </dependency>

      <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-devtools</artifactId>

        <version>1.5.8.RELEASE</version>

      </dependency>

    </dependencies>

  </dependencyManagement>

  <build>

    <pluginManagement>

      <plugins>

        <plugin>

          <groupId>org.springframework.boot</groupId>

          <artifactId>spring-boot-maven-plugin</artifactId>

        </plugin>

        

        <plugin>

          <artifactId>maven-clean-plugin</artifactId>

          <version>3.0.0</version>

        </plugin>

        

        <plugin>

          <artifactId>maven-resources-plugin</artifactId>

          <version>3.0.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-compiler-plugin</artifactId>

          <version>3.7.0</version>

        </plugin>

        <plugin>

          <artifactId>maven-surefire-plugin</artifactId>

          <version>2.20.1</version>

        </plugin>

        <plugin>

          <artifactId>maven-jar-plugin</artifactId>

          <version>3.0.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-install-plugin</artifactId>

          <version>2.5.2</version>

        </plugin>

        <plugin>

          <artifactId>maven-deploy-plugin</artifactId>

          <version>2.8.2</version>

        </plugin>

      </plugins>

    </pluginManagement>

  </build>

</project>

SpringCloud微服务案例,API公共模块和部门VO

2、子模块创建完成之后,我们可以看到在父pom文件中包含了子模块的声明。

<modules>

    <module>microcloudservice-api</module>

  </modules>

SpringCloud微服务案例,API公共模块和部门VO

3、新建一个部门微服务实体类:

package com.gwolf.springcloud.entities;

public class Dept implements java.io.Serializable{

    //主键

    private Integer deptno;

    //部门名称

    private String dname;

    //来自哪个数据库,因为微服务架构可以一个服务对应一个数据库,同一个信息

    //被存储到不同的数据库

    private String db_source;

    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 getDb_source() {

        return db_source;

    }

    public void setDb_source(String db_source) {

        this.db_source = db_source;

    }

}

SpringCloud微服务案例,API公共模块和部门VO

4、在微服务中,我们的实体类必须实现序列化的接口哦。不然对象流是不能通过网络传输的。

SpringCloud微服务案例,API公共模块和部门VO

5、现在我们实体类代码中自动生成了一系列的代码,如果我们新增和删除了一个属性,代码还需要重新生成,我们在项目中添加一个maven依赖包:

<dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <version>1.16.20</version>

            <scope>provided</scope>

        </dependency>

SpringCloud微服务案例,API公共模块和部门VO

6、我们在实体类上写上如下注解:

package com.gwolf.springcloud.entities;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Accessors;

@AllArgsConstructor

@NoArgsConstructor

@Data

@Accessors(chain = true)

public class Dept implements java.io.Serializable{

    //主键

    private Integer deptno;

    //部门名称

    private String dname;

    //来自哪个数据库,因为微服务架构可以一个服务对应一个数据库,同一个信息

    //被存储到不同的数据库

    private String db_source;

}

SpringCloud微服务案例,API公共模块和部门VO

7、这四个注解分别表示需要所有参数构造方法,无参构造方法,生成set方法和get方法,使用链式风格访问。

SpringCloud微服务案例,API公共模块和部门VO

8、这个公用的api子模块就定义完成了,其他模块需要用到部门实体的话,直接在maven中声明引入本模块即可。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢