首页 > 技术文章 > Spring生态系列文章 >

SpringCloud极简入门(三)服务提供者与消费者

更新时间:2018-06-02 | 阅读量(1,068)

>作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 ######需求:构建消费者和提供者两个服务,实现消费者和提供者之间的通信 ###一.服务提供者 >改造我们的项目Producer,让成为服务提供者:在该项目中创建ProvideController ,定义方法如下 ``` @RestController //@Controller 和 @ResponseBody 的混合注解 public class ProvideController { @RequestMapping("/provide") public String provide(@RequestParam(value = "name")String name){ return name+":你好呀这里是Producer服务"; } } ``` ###二.服务消费者 >1.创建SpringBoot项目Consumer,创建过程和Producer一致 >2.在主程序类上打上@EnableEurekaClient标签,并且定义bean: RestTemplate ,RestTemplate是Spring封装的一个http请求工具 ``` @SpringBootApplication @EnableEurekaClient public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(Consumer1Application.class, args); } //RestTemplate是spring内置的REST规范的http请求封装 @Bean RestTemplate restTemplate() { return new RestTemplate(); } } ``` >3.定义ConsummerController ,注入RestTemplate实例,实现和Producer服务的通信 ``` @RestController public class ConsumerController { //注入http请求工具 restTemplate @Autowired private RestTemplate restTemplate; @RequestMapping("/consumer") public String consumer(@RequestParam("name") String name){ //执行http请求Producer服务的provide映射地址,返回的数据为字符串类型 //PRODUCER:提供者(Producer服务)的注册服务ID //provide :消费方法 String result = restTemplate.getForObject("http://PRODUCER/provide?name="+name,String.class); return result; } } ``` >4.Consumer项目配置:application.yml ``` eureka: client: serviceUrl: defaultZone: http://localhost:1111/eureka/ #注册中心服务地址 server: port: 3333 #当前服务端口 spring: application: name: consumer #当前服务ID ``` >5.访问测试:依次启动EurekaServer ,Producer,Consumer ,浏览器输入 http://localhost:3333/consumer?name=zs 返回结果:"zs:你好呀这里是Producer服务",现在的请求流程是: ![image.png](https://upload-images.jianshu.io/upload_images/11046204-abdb767a2740ca4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >访问 http://localhost:1111/ 你将会看到提供者和消费者服务都已经注册: ![image.png](https://upload-images.jianshu.io/upload_images/11046204-940ebbd8459f646f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![WechatIMG7.jpeg](https://upload-images.jianshu.io/upload_images/807144-f63790a3db04b5ed.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
叩丁狼学员采访 叩丁狼学员采访
叩丁狼头条 叩丁狼头条
叩丁狼在线课程 叩丁狼在线课程