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

展示结果:


访问消费者接口

相关推荐
墨香幽梦客38 分钟前
API集成技术规范:RESTful与GraphQL在企业系统对接中的应用对比
后端·restful·graphql
百锦再1 小时前
Java 并发编程进阶,从线程池、锁、AQS 到并发容器与性能调优全解析
java·开发语言·jvm·spring·kafka·tomcat·maven
NGC_66113 小时前
SSM vs SpringBoot+MyBatis 对比
spring
深蓝轨迹5 小时前
@Autowired与@Resource:Spring依赖注入注解核心差异剖析
java·python·spring·注解
爱丽_6 小时前
Pinia 状态管理:模块化、持久化与“权限联动”落地
java·前端·spring
希望永不加班6 小时前
SpringBoot 核心配置文件:application.yml 与 application.properties
java·spring boot·后端·spring
我真会写代码7 小时前
Spring面试高频题:从基础到源码,通俗拆解+避坑指南
java·spring·面试
cyforkk11 小时前
Spring AOP 核心揭秘:ProceedingJoinPoint 与反射机制详解
java·python·spring
spencer_tseng13 小时前
java.lang.ClassNotFoundException: org.slf4j.Logger
java·spring·maven
小江的记录本13 小时前
【VO、DTO、Entity】VO、DTO、Entity三大核心数据对象全解析(附核心对比表 + 代码示例)
java·数据库·spring boot·spring·架构·mybatis·数据库架构