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

展示结果:


访问消费者接口

相关推荐
杨凯凡4 小时前
Spring AI RAG 实战:向量检索、租户过滤、引用溯源与防幻觉边界
java·人工智能·spring
SL_staff1 天前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
nice_lcj5201 天前
【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端
java·后端·spring·spring ai·ai应用开发
杨凯凡1 天前
Spring Framework 7 HTTP Interface 实战:声明式 RestClient、超时与测试
java·spring·http
Thanks_ks2 天前
HTTP 请求方法与 RESTful 接口设计:GET 和 POST 到底怎么用
http·api·restful·状态码·get·post·接口设计
Java码农也是农2 天前
Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选
java·spring boot·spring·事务
驭渊的小故事3 天前
Spring AOP 核心概念与通知类型详解
java·后端·spring
驭渊的小故事3 天前
Spring AOP 入门:从 AOP 概念到第一个耗时统计切面
java·后端·spring
CoderYanger4 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CQU_JIAKE4 天前
11.7[高体】
java·后端·spring