当前位置: 首页 > news >正文

spring-clound基础开发

一、使用openfeig调用远程另外一个服务接口

  • 1、创建一个spring boot工程,并且创建2个模块来当微服务模块

  • 2、分别配置2个模块的启动文件

  • 3、分别两个模块下创建一个测试的控制器

  • 4、在项目的根目录的pom.xml中添加spring-cloud配置

    <properties><java.version>1.8</java.version><spring-cloud.version>2021.0.8</spring-cloud.version>
    </properties>
    
    <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>
    
  • 5、在需要调用别的服务的项目中添加依赖

    <!--    远程调用的包    -->
    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId>
    </dependency>
    
  • 6、在需要调用别的 服务的项目中创建一个文件夹feign,里面创建一个文件SystemFeignHello.java的接口

    package com.example.feign;import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.GetMapping;@FeignClient(name = "system", url = "http://localhost:9001/system")
    public interface SystemFeignHello {/*** 别的地方调用hell1方法的时候就会调用http://localhost:9001/system/hello路由* @return*/@GetMapping("hello")String hello1();
    }
    
  • 7、测试调用另外一个服务的接口

    package com.example.controller;import com.example.feign.SystemFeignHello;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestController
    public class HelloController {@ResourceSystemFeignHello systemFeignHello;@GetMapping("hello")public String hello() {return "File Hello";}@GetMapping("systemHello")public String getHello() {String helloResult = this.systemFeignHello.hello1();System.out.println(helloResult+"返回数据");return helloResult;}
    }
    
  • 8、在调用服务的启动类上加上扫描注解

    package com.example;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
    @EnableFeignClients("com.example.feign")
    public class FileApplication {public static void main(String[] args) {SpringApplication.run(FileApplication.class, args);}}
    
  • 9、网页上测试调用接口

  • 10、system项目中接口如下,和普通接口没任何区别

    package com.example.controller;import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;@RestController
    public class HelloController {@GetMapping("hello")public String hello() {return "System Hello11";}
    }
    

二、使用eureka来服务端配置

  • 1、eureka分为服务端和客户端,需要在项目中先创建一个eureka的服务段,在子项目中使用客户端的方式连接

  • 2、创建一个eureka模块来做服务端

  • 3、在eureka模块中添加依赖包

    <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>
    </dependencies>
    
  • 4、配置文件中基本配置

    spring.application.name=eureka
    server.port=8761
    eureka.client.fetch-registry=false
    eureka.client.register-with-eureka=false
    
  • 5、在启动类上添加注解

    package com.example;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class, args);}}
    
  • 6、直接在浏览器上输入http://localhost:8761/如下就表示配置成功

    在这里插入图片描述

三、客户端配置

  • 1、引入依赖包

    <!--    客户端端    -->
    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
  • 2、在配置文件中添加

    eurec.client.server-url.defaultZone=http://localhost:8761/eureka/
    
  • 3、在启动文件中添加

    @SpringBootApplication
    @EnableEurekaClient
    public class SystemApplication {public static void main(String[] args) {SpringApplication.run(SystemApplication.class, args);}}
    
  • 4、刷新浏览器查看服务是否已经注册成功

    在这里插入图片描述

四、网关的配置

  • 1、创建一个网关模块

  • 2、在网关中引入依赖包

    <dependencies><!-- 网关依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--    客户端端    --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
    </dependencies>
    
  • 3、修改配置文件

    server.port=8000
    spring.application.name=gateway
    server.servlet.context-path=/gateway
    spring.main.web-application-type=reactive 
    eurec.client.server-url.defaultZone=http://localhost:8761/eureka/# 注册一个服务
    spring.cloud.gateway.routes[0].id=system
    spring.cloud.gateway.routes[0].uri.=http://localhost:9001
    spring.cloud.gateway.routes[0].predicates[0].name=Path
    spring.cloud.gateway.routes[0].predicates[0].args[0]=/system/**
    # 注册一个服务
    spring.cloud.gateway.routes[1].id=file
    spring.cloud.gateway.routes[1].uri.=http://localhost:9000
    spring.cloud.gateway.routes[1].predicates[0].name=Path
    spring.cloud.gateway.routes[1].predicates[0].args[0]=/file/**
    
  • 4、启动文件

    package com.example;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
    @EnableEurekaClient
    public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}}
    
  • 5、使用网关的地址直接访问别的路由http://localhost:8000/system/hello

http://www.lryc.cn/news/224006.html

相关文章:

  • 基于SSM的劳务外包管理系统的设计与实现
  • uni-app学习笔记(二)
  • 使用axios拦截器解决前端并发冲突问题
  • IPv6详解
  • 【C++干货铺】STL简述 | string类的使用指南
  • 合肥工业大学数字逻辑实验三
  • 【mmrotate】*** is not in the task util registry
  • 使用bitmap实现可回收自增id
  • 0基础学习VR全景平台篇第118篇:利用动作录制器功能避免重复操作 - PS教程
  • 大数据Doris(十九):数据导入(Load)
  • BP神经网络的数据分类——语音特征信号分类
  • 基于SSM+Vue的随心淘网管理系统
  • 大语言模型的关键技术(二)
  • 世界互联网大会领先科技奖发布 百度知识增强大语言模型关键技术获奖
  • 2023.11.09 homework (2)
  • ARMday01(计算机理论、ARM理论)
  • C#中通过LINQtoXML加载、创建、保存、遍历XML和修改XML树
  • 进程管理(二)
  • 数字图像处理 基于numpy库的傅里叶变换
  • scrapy案例教程
  • 1-3 docker 安装 prometheus
  • Mac使用brew搭建kafka集群
  • 图形界面应用案例——关灯游戏(以及扩展)(python)
  • Android平台上执行C/C++可执行程序,linux系统编程开发,NDK开发前奏。
  • elasticsearch 基本使用,ES8.10
  • pytorch中常用的损失函数
  • 申克SCHENCK动平衡机显示器维修CAB700系统控制面板
  • 【论文阅读】PSDF Fusion:用于动态 3D 数据融合和场景重建的概率符号距离函数
  • React 测试笔记 03 - 测试 Redux 中 Reducer 状态变化
  • xilinx primitives(原语)