wps栏目上的运服务怎么没有了
712
2022-05-30
在上一章的学习中,我们知道了微服务的基本概念,知道怎么基于Ribbon+restTemplate的方式实现服务调用,接着上篇博客,我们学习怎么基于Feign实现服务调用,请先学习上篇博客,然后再学习本篇博客
Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。
环境准备:
JDK 1.8
SpringBoot2.2.3
SpringCloud(Hoxton.SR6)
Maven 3.2+
开发工具
IntelliJ IDEA
smartGit
创建一个SpringBoot Initialize项目,详情可以参考我之前博客:SpringBoot系列之快速创建项目教程
port: 8083 spring: application: name: feign-service-consumer eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ healthcheck: enabled: false instance: status-page-url-path: http://localhost:8761/actuator/info health-check-url-path: http://localhost:8761/actuator//health prefer-ip-address: true instance-id: feign-service-consumer8083
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@FeignClient指定服务名称,@RequestMapping指定要调用的接口
package com.example.springcloud.client.service; import com.example.springcloud.client.bean.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** *
* UserService ** *
* @author mazq * 修改记录 * 修改后版本: 修改人: 修改日期: 2020/07/28 13:09 修改内容: **/ @FeignClient(value = "EUREKA-SERVICE-PROVIDER") @Service public interface UserService { @RequestMapping(value = "/api/users/{username}",method = RequestMethod.GET) User findGithubUser(@PathVariable("username")String username); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
加上@EnableEurekaClient,@EnableFeignClients,写个接口进行测试
package com.example.springcloud.client; import com.example.springcloud.client.bean.User; import com.example.springcloud.client.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.Async; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @EnableEurekaClient @EnableFeignClients @RestController public class SpringcloudFeignClientApplication { @Autowired UserService userService; public static void main(String[] args) { SpringApplication.run(SpringcloudFeignClientApplication.class, args); } @GetMapping("/findUser/{username}") public User index(@PathVariable("username")String username){ return userService.findGithubUser(username); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
要运行eureka服务端,eureka服务提供者,代码请参考上一章博客
补充:IDEA中多实例运行方法
step1:如图,不要加上勾选
step2:指定不同的server端口和实例id,如图:
服务注册,可以看到两个实例
ok,启动eureka server(服务注册中心),eureka服务提供者端,和feign服务消费者端
http://localhost:8083/findUser/mojombo
附录:
ok,本博客参考官方教程进行实践,仅仅作为入门的学习参考资料,详情可以参考Spring Cloud官方文档https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.2.0.RELEASE/reference/html/
代码例子下载:code download
优质学习资料参考:
方志鹏大佬系列Spring Cloud博客:https://www.fangzhipeng.com/spring-cloud.html
使用Spring Cloud与Docker实战微服务:https://eacdy.gitbooks.io/spring-cloud-book/content/
程序员DD大佬系列Spring Cloud博客:http://blog.didispace.com/spring-cloud-learning/
Spring Spring Cloud 网络
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。