Bootstrap

SpringCloud 项目搭建过程

文章目录

目录

文章目录

前言

一、创建一个不含src目录的maven项目

二、父pom中的管理依赖

1.parent引入spring-boot-starter-parent-2.2.5

2.使用properties管理依赖版本

3.使用dependencyManagement管理依赖

4.为所有模块引入公共的依赖

三、Eureka注册中心依赖导入于yml配置

1.创建一个module,命名为eureka-service

2.引入依赖netflix-eureka-server、spring-boot-starter-web

3.eureka-server yml配置

4.EurekaApplication启动

四、创建公共模块common

五、feign-api模块搭建

1.创建空模块

2.openfeign日志配置

 3.熔断降级工厂类

4.openfeign

1.引入依赖

 五、order-service模块搭建

1.导入pom依赖

2.order-service模块yaml配置

2.编写OrderServiceApplication启动类

3.Controller层方法

4.service层方法

5.mapper层接口


前言

spring cloud基本的环境搭建教程

一、创建一个不含src目录的maven项目

二、父pom中的管理依赖

1.parent引入spring-boot-starter-parent-2.2.5

 <!--spring-boot-starter-parent管理其它依赖-->
   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.2.5.RELEASE</version>
   </parent>

2.使用properties管理依赖版本

由于第三方依赖很多,spring-boot-starter-parent不会将所有的依赖都进行管理,需要我们自己管理,我们通过properties统一管理依赖的版本号,便于维护。

<!--
    管理依赖版本号
    maven.compiler.source maven编译源字java版本
    maven.compiler.target 目标的java版本
    project.build.sourceEncoding 仙姑构建源字符集编码
    -->
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--SpringCloud 版本号Hoxton.SR3-->
        <spring.cloud.version>Hoxton.SR3</spring.cloud.version>
        <!--mysql连接 5.7.47-->
        <mysql.version>5.1.47</mysql.version>
        <!--Mybatis 3.5.1-->
        <mybatis.version>3.5.1</mybatis.version>
        <!--Mybatis整合包 2.2.1-->
        <mybatis.spring.version>2.2.1</mybatis.spring.version>
    </properties>

3.使用dependencyManagement管理依赖

使用dependencyManagement管理依赖的好处在项目中的依赖不会存在版本不一致,同一个依赖的老旧版本同时出现在同一个项目中所导致的依赖冲突问题,通过EL表达式${spring.cloud.version}将properties管理的依赖版本与具体的依赖相互联系起来,EL表示式内包含的属性就是properties对应依赖被管理版本的标签。引入spring-cloud-dependencies的依赖中存在并不常见的type、scope标签它们是必须存在的,type表示spring-cloud-dependencies类型,而scope表式的作用范围<scope>import</scope>表示在作用在导入阶段。

 🕳 踩坑点:

特别需要注意的是:如果不加入type、scope无法传导到子模块中,会出现导入netflix-eureka-server依赖解析失败

<!--当前作为父pom管理项目中所有的依赖,子模块按需引入即可使用-->
    <dependencyManagement>
        <dependencies>
            <!--spring cloud依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--mysql 连接依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <!--mybatis 依赖-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <!--mybatis spring整合依赖-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

4.为所有模块引入公共的依赖

项目中会出现这样的情况:所有模块都会用到的依赖,这些依赖我们可以在独立于dependencyManagementdependencies中,在当前项目的子模块都会自动的引入junit-4.12和lom

;