尚硅谷SpringCloud教程 笔记

简介: 本文介绍了基于Spring Cloud Alibaba构建的cloud-demo工程创建步骤,包括父模块及子模块的配置。父模块采用pom打包方式,定义了Java 8、Spring Boot 2.4.2、Spring Cloud 2020.0.1及Spring Cloud Alibaba 2021.1版本。包含三个主要模块:services(依赖Nacos)、service-order和service-product(均依赖spring-boot-starter-web)。同时提供了discoveryClient的测试代码,展示服务发现功能的实现与验证过程。

#in

1、 工程创建步骤

1、创建cloud-demo模块(最外层父模块)

    (1)模块packaging属性为pom

    (2)  java8;springboot版本号2.4.2;springcloud版本号:2020.0.1; springcloudalibaba版本号2021.1

  (3)aa


<groupId>com.itguigu</groupId>
    <artifactId>cloud-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>services</module>
    </modules>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>2.4.2</spring-boot.version>
        <spring-cloud.version>2020.0.1</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2 services模块

(1)模块packaging属性为pom

(2)依赖nacos

<dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

3 service-order服务(模块)

(1)依赖spring-boot-starter-web

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

OrderMainApplication.java

package com.itguigu.order;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class OrderMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderMainApplication.class, args);
    }
}

4 service-product服务(模块)

(1)依赖spring-boot-starter-web

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
@SpringBootApplication
public class ProductMainApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductMainApplication.class, args);
    }
}

试验discoveryClient

package com.itguigu.product;
import com.alibaba.cloud.nacos.discovery.NacosServiceDiscovery;
import com.alibaba.nacos.api.exception.NacosException;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import java.util.List;
@SpringBootTest
public class DiscoveryTest {
    @Autowired
    DiscoveryClient discoveryClient;
    @Autowired
    NacosServiceDiscovery nacosServiceDiscovery;
    @Test
    void discoveryClientTest() {
        for (String service : discoveryClient.getServices()) {
            System.out.println("service = " + service);
            List<ServiceInstance> instances = discoveryClient.getInstances(service);
            instances.forEach(x -> {
                System.out.println("ip=" + x.getHost());
                System.out.println("port=" + x.getPort());
            }
                             );
        }
    }
    @Test
    void nacosDiscoveryServiceTest() throws NacosException {
        for (String service : nacosServiceDiscovery.getServices()) {
            System.out.println("service="+service);
            List<ServiceInstance> instances = nacosServiceDiscovery.getInstances(service);
            for (ServiceInstance instance : instances) {
                System.out.println("ip: "+instance.getHost() + " port: "+instance.getPort());
            }
        }
    }
}

相关文章
|
12月前
|
Java 测试技术 数据安全/隐私保护
SpringCloud微服务之最全JWT学习教程03
SpringCloud微服务之最全JWT学习教程03
242 0
|
消息中间件 Java Kafka
微服务技术系列教程(36) - SpringCloud-使用Kafka实现消息驱动
微服务技术系列教程(36) - SpringCloud-使用Kafka实现消息驱动
99 0
|
消息中间件 Java Maven
微服务技术系列教程(34) - SpringCloud-使用RabbitMQ实现消息驱动
微服务技术系列教程(34) - SpringCloud-使用RabbitMQ实现消息驱动
231 0
|
12月前
|
Java 程序员 Docker
爱了!Alibaba技术官甩出的SpringCloud笔记,GitHub已标星81.6k
阿里巴巴,作为国内互联网公司的Top,算是业界的标杆,有阿里背景的程序员,也更具有权威性。作为程序员,都清楚阿里对于员工要求有多高,技术人员掌握的技术水平更是望尘莫及。所以,大厂程序员的很多经验也都值得我们借鉴和学习,在一定程度上确实能够帮助我们“走捷径”。
|
5月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
1478 1
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
8月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
605 37
|
存储 监控 Java
微服务技术系列教程(42)- SpringCloud -Sleuth与Zipkin服务链路
微服务技术系列教程(42)- SpringCloud -Sleuth与Zipkin服务链路
164 0
|
安全 Java API
微服务技术系列教程(41)- SpringCloud -OAuth2搭建微服务开放平台
微服务技术系列教程(41)- SpringCloud -OAuth2搭建微服务开放平台
444 0
|
存储 安全 API
微服务技术系列教程(40)- SpringCloud -OAuth2简介&原理
微服务技术系列教程(40)- SpringCloud -OAuth2简介&原理
79 0
|
消息中间件 负载均衡 Java
微服务技术系列教程(35) - SpringCloud-消息驱动消费者组的实现
微服务技术系列教程(35) - SpringCloud-消息驱动消费者组的实现
75 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等