java服务间调用方法_spring cloud eureka微服务之间的调用详解

本文详细介绍了在Spring Cloud Eureka环境下,如何实现微服务间的调用。通过添加`spring-boot-starter-thymeleaf`依赖进行页面展示,并在消费端配置`RestTemplate`,结合`@LoadBalanced`注解实现服务发现和调用。在Controller中,利用`RestTemplate`的`getForEntity`方法,通过注册中心的项目名调用其他微服务的方法,避免了直接使用IP地址带来的问题。此外,还提及了Feign作为另一种微服务调用方式。
摘要由CSDN通过智能技术生成

微服务之间的调用如何实现

首先 你需要两个或以上的微服务模块 至于怎么创建可以参考我上一篇博客 spring cloud eureka注册中心

如果想在页面显示 那么需要先加上

compile 'org.springframework.boot:spring-boot-starter-thymeleaf'

这个thymeleaf依赖 springboot推荐使用thymeleaf模板 它的最大好处就是原型即是模板 后缀是html

html文件 需要放在resources/templates文件夹下 因为thymeleaf自动配置的就是这个地址 当然也可以自己改

284c29d0073f711705f3d725cc5fa9b4.png

还需要配置一个属性

spring:

thymeleaf:

cache: false #开发时关闭缓存 否则无法看到实时页面

然后在html页面加上这个

05998d3357967ca0b42034fc838dfe62.png

就可以使用thymeleaf模板了

然后在消费端的启动类中 加上此方法

@Bean // 自动扫描

@LoadBalanced //这个注解的意思是在启动时先加载注册中心的域名列表

public RestTemplate restTemplate() //这个方法用来发http请求

{

RestTemplate restTemplate=new RestTemplate();

return restTemplate;

}

看一下controller中的代码

@Autowired

private RestTemplate restTemplate;

@RequestMapping(value = "index")

public String toIndex(Model model){

String msg=restTemplate.getForEntity("http://PROJECT-POPPY-SOLR/search",String.class).getBody();

model.addAttribute("msg",msg);

return "index";

}

它的getForEntity方法中 传入的想要调用的方法以及它所在的地址 注意 这里不能直接写ip地址 必须写往注册中心注册过之后的项目名 要想直接写项目名必须在启动类上面的方法中加上@LoadBalaced注解

否则ip地址如果发生变化 就需要更改 特别麻烦 作为一个优秀的程序员 当然是不能这么干的

然后把它放到model中发到页面 就可以调用另一个微服务的方法 实现了微服务间的调用

还有一个调用的方法是feign 以后会讲解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值