SpringCloud 详细教程(1) 搭建多模块开发环境

更多教程请访问简书:https://www.jianshu.com/c/4683518df962

多模块Maven项目

为了便于统一的版本维护和管理,经常会用到Maven的多模块模式。

本文以以下模块结构为例,对如何创建多模块Maven项目进行描述。 
这里写图片描述

构建主工程

 创建Maven项目:cloud_parent  作为父工程,创建过程如下;

打开Idear 点击 File-->New-->Project

  • 选择Maven选项,点击Next。

 

  • 填写GroupId  和AritifactId  ,点击Next。
  • GroupId  :包名,AritifactId:项目名称。

  • 选择Maven配置文件及仓库,点击Next。

  • 项目名默认,点击Finish。

  • 项目初始结构。

构建子模块

子模块项目创建于主工程之内,创建过程如下:

子模块名称eureka_client

  • 右键点击项目,选择new-->Model 。

 

  • 填写包名及模块名

  • 如下图选择默认,点击Next。

  • 填写项目名称及项目路径

注意:项目的路径,存放在父工程内

  • 父模块与子模块结构

  • 编辑主工程pom.xml ,作为主工程,其pom.xml可以作为其他子模块工程的基准依赖,方便进行统一的版本管理。
  • 将主工程pom.xml修改如下:
  • 添加子模块配置
  • 添加SpringBoot配置
  • 配置统一管理参数
  • 添加项目依赖
  • 添加SpringCloud版本序列配置
  • 添加build构建
<?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.hf.parent</groupId>
    <artifactId>cloud_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--父工程一定要加-->
    <name>cloud_parent</name>
    <packaging>pom</packaging>
    <description>Demo project for Spring Boot</description>

    <!--子模块工厂配置-->
    <modules>
        <module>eureka_client</module>
        <module>eureka_server</module>
    </modules>

    <!--Spring Boot配置-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!--配置参数 统一管理版本-->
    <properties>
        <!-- 源文件编码格式 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- 输出流编码格式 -->
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- java 版本 -->
        <java.version>1.8</java.version>
        <!-- spring-cloud 版本 ,不同的Spring Boot版本对应不同的spring-cloud版本-->
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>


    <!--添加依赖,子项目无需再次添加-->
    <dependencies>
        <!--Spring Boot 执行器组件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

     
        <!--Spring Boot Web组件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!--Spring Cloud 版本序列配置-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

注意: spring boot2.0.0  以上对应  spring cloud(Finchley.RELEASE版本)

  • 修改子模块的 pom.xml
  • 原始eureka_client 子模块的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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.hf.client</groupId>
    <artifactId>eureka_client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka_client</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • 修改后eureka_client子模块 的pom.xml与主工程pom.xml的依赖关系

子模块主要修改一下几点:

  • 删除 Spring Boot 父依赖
  • 删除java版本
  • 删除Spring Boot的依赖
  • 删除 build 的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.hf.client</groupId>
    <artifactId>eureka_client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka_client</name>
    <description>Demo project for Spring Boot</description>

    <!--父工程的依赖-->
    <parent>
        <groupId>com.hf.parent</groupId>
        <artifactId>cloud_parent</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>


    <!--子模块的个性化依赖-->
    <dependencies>

    </dependencies>


</project>
  • 删除父模块中的src 文件夹如图:

  • 同理 依次创建:  eureka_server:注册中心服务 模块, eureka_feign:服务消费者模块

 

运行测试

  • 改写eureka_server的启动类 EurekaServerApplication.java 如下:
package com.hf.server.eureka_server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }

    @GetMapping("/hi")
    public String hi(){
        return "Hello World!";
    }

}
  • 启动EurekaServerApplication.java 。
  • 访问 hi 方法
  • 注 默认端口为:8080

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值