ps:项目搭建步骤: 约定 > 配置 > 编码

一、IDEA新建project工作空间

1. 微服务cloud整体聚合父工程步骤如下:

1.new project
2.聚合总父工程名字
3.maven选版本
4.工程名字
5.字符编码
6.注解生效激活
7.java编译版本选8
8.File Type过滤

2.Maven中的dependencyManagement和Dependencies区别:

example:

springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_单元测试


这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。

1.maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。
2.通常会在一个组织或者项目的最顶层的父POM中看到dependencyManagement元素。
3.使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。
4.Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个dependencyManagement元素中指定的版本号。
5.dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。
6.如果不在项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;
如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

3.maven跳过单元测试

  1. 配置
<build><!-- maven中跳过单元测试 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

2.IDEA工具支持(推荐)

springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_java_02


4.父工程创建完成执行mvn:install将父工程发布到仓库方便子工程继承二、Rest微服务工程构建

订单模块图

springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_单元测试_03


1.微服务模块构建步骤

1.建module
2.改pom
3.写yml
4.主启动
5.业务类

2.热部署Devtools(ps:适用于开发阶段,生产环境必须关闭)
1.Add devtools to your project(在子模块引入以下依赖)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>

2.Adding plugin to your pom.xml(在父pom.xml中加入以下依赖)

下段配置我们粘贴进聚合父类总工程的pom.xml里
 
<build>
    <finalName>你自己的工程名字</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <addResources>true</addResources>
            </configuration>
        </plugin>
    </plugins>
</build>

3.Enabling automatic bulid(修改idea配置将以下四项全部打上勾)

springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_Cloud_04


4.update the value of

springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_maven_05


springcloud gateway knife4j 服务发现聚合从注册中心聚合的规则是什么_maven_06


5.重启IDEA

三、工程重构
ps:对于小模块服务之间共同的实体类或者工具类可以单独写成一个服务,并对其进行部署,其他服务可以调用实现避免其代码冗余。

比如:此例中的实体类(具体可查看cloud脑图)

四、总结:(详细步骤见项目中脑图)
ps:对于一个服务远程调用另外一个服务可以采用本例中的RestTemplate类。

RestTemplate提供了多种便捷访问远程Http服务的方法, 是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集。