修改UserController代码,用DiscoveryClient类的方法,根据服务名称,获取服务实例:

package com.itcast.service.contoller;import com.itcast.service.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;import java.util.List;@Controller
@RequestMapping("consumer/user")
public class UserController {@Autowiredprivate RestTemplate restTemplate;@Autowiredprivate DiscoveryClient discoveryClient; // eureka客户端,可以获取到eureka中服务的信息@GetMapping@ResponseBodypublic User queryUserById(@RequestParam("id") Long id){// 根据服务名称,获取服务实例。有可能是集群,所以是service实例集合List<ServiceInstance> instances = discoveryClient.getInstances("provider");// 因为只有一个Service-provider。所以获取第一个实例ServiceInstance instance = instances.get(0);// 获取ip和端口信息,拼接成服务地址String baseUrl = "http://" + instance.getHost() + ":" + instance.getPort() + "/user/" + id;User user = this.restTemplate.getForObject(baseUrl, User.class);return user;}}

改造消费方解决地址硬编码问题相关推荐

  1. 如何使用SQL Server主数据服务替换硬编码的查找

    介绍 (Introduction) A big part of the technical debt in my organization's data warehouse (DW) and busi ...

  2. oracle SQL语句硬编码带来的问题以及解决办法

    好久没有写博客(吹nb)了,最近在工作中遇到了一些SQL硬编码的问题(系统部提出的要求,要求开发优化sql),下面具体说说. 1.硬解析即整个SQL语句的执行需要完完全全的解析,生成执行计划. 硬解析 ...

  3. 开源规则引擎——ice:致力于解决灵活繁复的硬编码问题

    背景介绍 业务中是否写了大量的 if-else?是否受够了这些 if-else 还要经常变动? 业务中是否做了大量抽象,发现新的业务场景还是用不上? 是否各种调研规则引擎,发现不是太重就是接入或维护太 ...

  4. Android开发——AS插件批量解决XML中的String/Color/Dimen硬编码

    1. 问题抛出 1.1 开发方面 对于日常开发中,每写一个"#333",都要手动的在当前xml与colors.xml中来回切换,查看是否已经定义过,如果定义过则拿过来复用,如果没有 ...

  5. 使用Mapper代理开发解决硬编码问题

    步骤: 一.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下 二.设置SQL映射文件的namespace属性为Mapper接口全限定名 三.在Mapp ...

  6. 视频直播推流技术(MediaCodec硬编码+libRTMP,编码器),Demo - Android

    - aac audio_codec; h264,video_codec;25 framerate 25帧; - Camera-YUV帧序列-YUV帧预处理(镜像 缩放 旋转)-编码器-H264数据 从 ...

  7. EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式

    EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式 最近在研究EasyDarwin的Push库EasyPusher,EasyPusher可以推送H264视频到 ...

  8. 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  9. 工厂用抽象类比接口_用简单的现实类比解释硬编码概念

    工厂用抽象类比接口 by Samer Buna 通过Samer Buna 用简单的现实类比解释硬编码概念 (Hard Coding Concepts Explained with Simple Rea ...

最新文章

  1. 顶尖技术专家严选,15场前沿论坛思辨,2019中国大数据技术大会邀您共赴
  2. 开放式创新改变世界——OpenStack生态系统将重新洗牌
  3. 如何轻松应对DNS劫持
  4. Linux系统支持的目录文件有,【技术支持】linux操作系统有哪些文件和目录操作相关命令?...
  5. Java各类型变量之间的转换
  6. Android 事件分发面试题2
  7. C#中的get和post请求(工具类)
  8. sql OFFSET 和 ORDINAL
  9. ajax java 插件_对JQuery中Ajax应用与jQuery插件的理解与笔记
  10. C++局部变量和全局变量的初始化
  11. 小谈CDN回源函数计算的应用场景
  12. linux oracle semopm,Linux 内核参数设置于详解 --Oracle 安装
  13. Ubuntu ufw防火墙常见命令
  14. enctype=multipart/form-data 文件上传
  15. C# 最简单的全局键盘鼠标钩子
  16. FastReport .NET 2022.3.6-新版Crack
  17. 扫拖地机器人预留_进阶规划,扫拖一体,小瓦扫地机器人规划版重度体验
  18. oracle求累积收益率,解决报表sql中的累计收益率问题?换个姿势,再来一次~
  19. CF567C Geometric Progression
  20. 考研专业课,到底要不要报辅导班?

热门文章

  1. [JavaScript]JS由来
  2. 移动app崩溃原因及场景
  3. ASP.NET中常用功能代码总结(3)——上传图片到数据库
  4. PL/SQL DEVELOPER 使用的一些技巧
  5. 【大话设计模式】设计模式系统学习大合集
  6. 集合对象的声明和初始化
  7. Go Timer使用方法
  8. Django运维后台的搭建之二:建立template和对应的ModelForm
  9. 窗口和元素的大小:offset client scroll
  10. linux学习笔记(五):开机、关机、开机日志