IDEA搭建spring cloud一步一步详解
阅读原文时间:2021年04月24日阅读:1

IDEA搭建spring cloud一步一步详解

一.项目目录结构

先上一张构建好的spring-cloud工程结构图.

spring-cloud-01是root项目,里面包括Eureka服务(eureka-server)和Eureka客户端(eureka-client-01),下面开始项目贴代码.

项目源码下载

二.创建root项目

1.File → New project,这里选择 maven项目,然后下一步填写Groupid和Artifactld,然后下一步,在填写项目名称和路径flinish,删除src后就是最初的项目结构目录:
step1:

step2:

step3:

2.配置root项目的pom文件

<?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.sky</groupId>
    <artifactId>spring-cloud-01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <modules>
        <module>eureka-server</module>
        <module>service-client-01</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

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

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

三.创建eureka-server子model

1.在spring-cloud-01项目右键 new → module,选择Spring initializr然后next:

2.需改groupid和artifact:

3.选择 spring cloud Discovery右侧选择 Eureka server,选择Eureka sever 这里会自动将eureka需要的jar导入到工程,并包含一个简单的启动主类,然后 下一步:

4.输入项目名称,然后finish,到这一步,eureka server项目创建完成.

5.配置eureka-server项目的pom文件:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.sky</groupId>
        <artifactId>spring-cloud-01</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.sky</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server</name>
    <packaging>jar</packaging>
    <description>eureka-server</description>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

</project>

6.编写启动类,上面说到idea创建eureka服务的时候会生成一个启动类,用这个也可以或者自己写也行,代码如下:

package com.sky;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

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

7.配置application.yml文件,此文件一定要以application.yml命名,且一定要放到resources目录下(pringboot约定大于约束原则),代码如下:

server:
  port: 9001

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  application:
    name: eureka-server

8.启动服务,验证是否正常启动,地址为:http://localhost:9001,启动成功会出现以下界面:

此时, Instances currently registered with Eureka 下显示是空的,目前还没有服务注册到这里,下面开始写客户端项目.

四.创建eureka-client项目.

创建client服务和第三步基本一致,这里不做过多描述,只是在创建过程的第3步,将右侧勾选 eureka server 修改为eureka discovery client,如下图:

2.配置pom文件,如下:

<?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>com.sky</groupId>
        <artifactId>spring-cloud-01</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <groupId>com.sky</groupId>
    <artifactId>eureka-client-01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>eureka-client-01</name>
    <description>eureka-client-01</description>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

3.配置application.yml文件,如下:

server:
  port: 9002

spring:
  application:
    name: eureka-client-01

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:9001/eureka/

4.编写一个controller,代码如下:

package com.sky.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author sky
 * @description
 * @date 2019/10/16
 */

@RestController
@RequestMapping("/client")
public class ClientControl {
    @Value("${server.port}")
    private String port;

    @RequestMapping("/hi")
    public String sayhi(@RequestParam(value = "name", defaultValue = "forezp") String name){
        return "hi " + name + " ,i am from port:" + port;
    }

}

5.启动eureka-client-01项目,启动成功后,回到http://localhost:9001/页面,nstances currently registered with Eureka下回注册一个实例,如下图:

6.访问我们编写的controller来验证eureka服务是否搭建成功,浏览器输入地址:http://localhost:9002/client/hi?name=sky,浏览器返回结果如下,这spring cloud到此搭建完成.

如果能看到 hi sky , i am from port 9001 ,恭喜你搭建成功,我在搭建的过程也有很多问题,如果大家有什么不清楚的大家可以留言.下一章,继续介绍 spring configs.
源码地址:https://gitee.com/sky061015/spring-cloud

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章