SpringCloud 之 服务消费者

前提

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

复制代码
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com

Rest学习实例之消费者

创建一个消费者去消费


消费者模块展示

1、导入依赖

xml 复制代码
<!--        实体类api自己创建的模块 + Web 部分依赖展示-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <!-- eureka       -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>

2、创建启动入口

@EnableEurekaClient 开启eureka服务

java 复制代码
@SpringBootApplication
@EnableEurekaClient
public class DeptConsumer_80 {
    public static void main(String[] args) {
        SpringApplication.run(DeptConsumer_80.class,args);
    }
}

3、application.yml配置

yml 复制代码
server:
  port: 80

# eureka 配置
eureka:
  client:
    register-with-eureka: false  #  不向eureka中注册自己
    service-url:  #       替换源码 默认this.serviceUrl.put("defaultZone", "http://localhost:8761/eureka/");
      # 访问下面的eureka
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

3、创建配置类

使用RestTemplate 类 访问 Restful 服务的客户端工具

java 复制代码
@Configuration
public class ConfigBean {
    /**
     * http请求
     * @return
     */
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}

4、创建控制类

获取http://localhost:8001提供者的信息,导入RestTemplate ,访问提供者暴露的url

java 复制代码
@RestController
public class DeptConsumerController {
    // RestTemplate  不需要业务层
    // 提供多种便捷 远程http服务的方法
    @Autowired
    private RestTemplate restTemplate;
		
    private static  final String REST_URL_PREFIX = "http://localhost:8001/";
    @RequestMapping("/consumer/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id){
        // 没有service  怎么获取    getForObject(url , 返回类型)
        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);
    }

    @RequestMapping("/consumer/dept/list")
    public List<Dept> getAll(){
        // 没有service  怎么获取    getForObject(url , 返回类型)
        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
    }

    @RequestMapping("/consumer/dept/add")
    public boolean add(Dept dept){
        // 没有service  怎么获取    getForObject(url ,参数, 返回类型)
        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);
    }

}

测试结果展示

测试成功的前提是先启动eureka服务和提供者服务

测试地址http://localhost/consumer/dept/list 默认80端口

展示结果:


访问消费者接口

相关推荐
zzzll11111 小时前
Spring Cloud 微服务:从入门到实践
spring·spring cloud·微服务
Devin~Y3 小时前
从本地生活电商到 AI RAG:互联网大厂 Java 面试场景完整实战
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
都叫我大帅哥14 小时前
Spring Data JPA 查询之道:方法命名与示例查询完全指南
java·后端·spring
重庆小透明15 小时前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
lemon_sjdk21 小时前
Spring WebFlux 响应式编程深度解析:从架构选型到核心抽象
java·spring·架构
自强的小白21 小时前
重点Springboot原理(起步原理和自动配置的两个实现方案)!
spring boot·spring
小罗水1 天前
第11章 PostgreSQL + pgvector 向量检索
java·数据库·spring cloud·微服务
番茄炒鸡蛋加糖1 天前
Spring 事务传播机制 & 事务失效场景
java·后端·spring
qq_171538851 天前
Spring TransactionSynchronizationManager:事务同步的幕后指挥官
java·后端·spring
不才不才不不才1 天前
Spring 源码系列(12): @EnableAspectJAutoProxy 到底注册了什么
java·后端·spring