购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.4 手动创建Feign

在某些场景下,前文自定义Feign的方式满足不了需求,此时可使用Feign Builder API( https://github.com/OpenFeign/feign/#basics )手动创建Feign。

本节围绕以下场景,为大家讲解如何手动创建Feign。

●用户微服务的接口需要登录后才能调用,并且对于相同的API,不同角色的用户有不同的行为。

●让电影微服务中的同一个Feign接口使用不同的账号登录,并调用用户微服务的接口。

6.4.1 修改用户微服务

首先来改写用户微服务。

1.复制项目microservice-provider-user,将ArtifactId修改为microservice-provider-user-with-auth。

2.为项目添加以下依赖。

img

3.创建Spring Security的配置类。

img
img
img

代码中模拟了两个账号:user和admin,它们的密码分别是password1和password2,角色分别是user-role和admin-role。

4.修改Controller,在其中打印当前登录的用户信息。

img
img
img

测试

1.启动microservice-discovery-eureka。

2.启动microservice-provider-user-with-auth。

3.访问 http://localhost:8000/1 ,将弹出登录对话框,如图6-1所示。

4.使用user/password1登录,可看到类似如下的日志。

img

5.使用admin/password2登录,可看到类似如下的日志。

img
img

图6-1 用户微服务登录对话框

6.4.2 修改电影微服务

修改好用户微服务后,接下来修改电影微服务。

1.复制项目microservice-consumer-movie-feign,将ArtifactId修改为microservice-consumer-movie-feign-manual。

2.去掉Feign接口UserFeignClient上的@FeignClient注解。

3.去掉启动类上的@EnableFeignClients注解。

4.修改Controller如下:

img
img

其中,@Import导入的FeignCl ientsConf iguration是Spring Cloud为Feign默认提供的配置类。

userUserFeignClient登录账号user,adm inUserFeignClient登录账号admin,它们使用的是同一个接口UserFeignClient。

img

测试

1.启动microservice-discovery-eureka。

2.启动microservice-provider-user-with-auth。

3.启动microservice-consumer-movie-feign-manual。

4.访问 http://localhost:8010/user-user/1 ,可以正常获得查询结果,同时可以看到用户微服务打印类似如下的日志:

img

5.访问 http://localhost:8010/user-admin/1 ,可以正常获得查询结果,同时可以看到用户微服务打印类似如下的日志:

img

由测试不难发现,手动创建Feign的方式更加灵活。 BPmV982P9p9V9X1uOA+zhK80QA+I18JWdjbvSdCknMFXQlKjtgevdiz8wrv+5yVQ

点击中间区域
呼出菜单
上一章
目录
下一章
×