• SpringCloud 之 服务提供者


    前提

    便于理解,我修改了本地域名=》这里!!!

    127.0.0.1 eureka7001.com
    127.0.0.1 eureka7002.com
    127.0.0.1 eureka7003.com
    
    • 1
    • 2
    • 3

    学习Rest实例之提供者

    在这里插入图片描述

    提供者模块展示

    1、导入依赖

    
     <dependency>
          <groupId>com.jylgroupId>
          <artifactId>springcloud-apiartifactId>
          <version>1.0-SNAPSHOTversion>
      dependency>
      <dependency>
          <groupId>mysqlgroupId>
          <artifactId>mysql-connector-javaartifactId>
      dependency>
      <dependency>
          <groupId>com.alibabagroupId>
          <artifactId>druidartifactId>
      dependency>
      <dependency>
          <groupId>ch.qos.logbackgroupId>
          <artifactId>logback-coreartifactId>
      dependency>
      <dependency>
          <groupId>org.mybatis.spring.bootgroupId>
          <artifactId>mybatis-spring-boot-starterartifactId>
      dependency>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-webartifactId>
      dependency>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-testartifactId>
      dependency>
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-jettyartifactId>
      dependency>
    
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-devtoolsartifactId>
      dependency>
      
      
      <dependency>
          <groupId>org.springframework.cloudgroupId>
          <artifactId>spring-cloud-starter-eurekaartifactId>
          <version>1.4.6.RELEASEversion>
      dependency>
    
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-actuatorartifactId>
      dependency>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    2、application.yml 用户级配置文件

    配置端口号、mybatis配置、spring配置、eureka配置、监控信息配置

    server:
      port: 8001
    # mybatis 配置
    
    mybatis:
      type-aliases-package: com.jyl.springcloud.pojo
      config-location: classpath:mybatis/mybatis-config.xml
      mapper-locations: classpath:mapper/*.xml
    
    # spring 的配置
    
    spring:
      application:
        name: springcloud-provider-dept
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: org.gjt.mm.mysql.Driver
        url: jdbc:mysql://localhost:3306/db01?useUnicode=true&useSSL=false&characterEncoding=utf-8
        username: root
        password: root
        druid:
          test-while-idle: false  # 关闭空闲检测
    
    eureka:
      client:
        service-url:  #       替换源码 默认this.serviceUrl.put("defaultZone", "http://localhost:8761/eureka/");
          # 端口号 7001 7002 7003  ,实际工作中是3台不同的电脑域名或IP
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7002.com:7003/eureka/
      instance:
        instance-id: springcloud-provider-dept8001  # 修改eureka 上	Status默认描述信息
    
    # 导入 actuator
    info:
      app.name: jiangyl-springcloud8001
      company.name: jiang.yl.com
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    3、Controller层

    通过DiscoveryClient的API从注册中心获取其他已经注册的服务的信息

    @RestController
    public class DeptController {
        @Autowired
        private DeptService deptService;
        // 可以获取服务列表 
        @Autowired
        private DiscoveryClient client;
    
        @PostMapping("/dept/add")
        public boolean addDept(Dept dept){
            return deptService.addDept(dept);
        }
        @GetMapping("/dept/get/{id}")
        public Dept get(@PathVariable("id") Long id){
            return deptService.queryById(id);
        }
        @GetMapping("/dept/list")
        public List<Dept> qeuryAll(){
            return deptService.queryAll();
        }
    
        // 还需要在启动类中添加 @EnableDiscoveryClient  服务发现  用于团队协助
        @GetMapping("/dept/discovery")
        //注册进来的微服务  , 获取一些信息
        public Object discovery(){
            // 获取微服务列表的清单
            List<String> services = client.getServices();
            System.out.println("discovery->services = " + services);
            // Eureka 中Application iD
            List<ServiceInstance> instances = client.getInstances("SPRINGCLOUD-PROVIDER-DEPT");
            for (ServiceInstance instance : instances) {
                System.out.println(
                        instance.getHost()+"\t"+
                        instance.getUri()+"\t"+
                        instance.getPort()+"\t"+
                        instance.getServiceId());
            }
            return this.client;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    4、service层

    public interface DeptService {
        public boolean addDept(Dept dept);
        public Dept queryById(Long id);
        public List<Dept> queryAll();
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5、启动类

    @EnableDiscoveryClient

    @SpringBootApplication
    @EnableEurekaClient  // 自动在服务启动后自动注册到Eureka中
    @EnableDiscoveryClient // 服务发现
    public class SpringBootProviderApplication_8001 {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootProviderApplication_8001.class,args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    测试结果展示

    前提是先启动eureka集群

    测试1

    访问eureka服务 http://localhost:7001/可以查看到注册的提供者信息名称为SPRINGCLOUD-PROVIDER-DEPT

    在这里插入图片描述

    eureka默认界面

    测试2

    访问服务提供者接口 http://localhost:8001/dept/list

    在这里插入图片描述

    提供者list

    测试3

    访问http://localhost:8001/dept/discovery

    在这里插入图片描述控制台输出

    discovery->services = [springcloud-provider-dept]
    [本机用户名]	http://[本机用户名]:8001	8001	SPRINGCLOUD-PROVIDER-DEPT
    discovery->services = [springcloud-provider-dept]
    [本机用户名]	http://[本机用户名]:8001	8001	SPRINGCLOUD-PROVIDER-DEPT
    
    • 1
    • 2
    • 3
    • 4

    搭建eureka服务==>传送
    搭建springcloud的提供者–>传送

  • 相关阅读:
    PyTorch合集2
    ChatGPT:你的数字生活助手
    linux 和 windows的換行符不兼容問題
    【UV打印机】电气之光电传感器
    C++ 中 API 兼容与 ABI 兼容万字详解
    Spring Security 为用户示例添加角色
    Unity Asset Bundle Browser 工具
    全面了解 LLM 微调——根据应用场景独特需求定制大型语言模型
    C语言库总结
    游戏公会在去中心化游戏中的未来
  • 原文地址:https://blog.csdn.net/weixin_46171048/article/details/138183375