Spring Cloud实战 | 第五篇:Spring Cloud整合OpenFeign实现微服务之间的调用
1、新增ljf-admin模块: 根据ljf-auth子模块复制
2、新增ljf-admin-api模块,添加依赖
org.springframework.cloud
spring-cloud-starter-openfeign
io.github.openfeign
feign-okhttp
com.ljf.common
ljf-common-base
1.0-SNAPSHOT
3、接口FeignClient代码
@FeignClient(value = "ljf-admin")
public interface UserAdminFeign {
@GetMapping("/admin/user/list")
Result getUserListByPage(@RequestParam("page") Integer page, @RequestParam("limit") Integer limit, @RequestParam("username") String username);
@GetMapping("/admin/user/getUserByUsername")
Result getUserByUsername(@RequestParam("username") String username);
}
4、ljf-auth引入ljf-admin-api
com.ljf.admin
ljf-admin-api
1.0.0
5、测试调用feign接口
@RestController
@RequestMapping("/oauth")
public class UserController {
@Autowired
private UserAdminFeign userAdminFeign;
@GetMapping("/getUserByUsername")
public Result getUserByUsername(String username){
return userAdminFeign.getUserByUsername(username);
}
}
6、开启feign自动配置
@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients(basePackages = "com.ljf.*")
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class);
}
}
7、添加配置启用 OkHttp作为底层的client
feign:
okhttp:
enabled: true
8、 用nacos作为注册中心,碰到java.net.UnknownHostException: ljf-adminr的错误,意思就是无法解析的主机.
需要添加依赖
org.springframework.cloud
spring-cloud-loadbalancer
如果用的是RestTemplate ,需要在bean上面配置
@LoadBalanced
@Bean
RestTemplate getRestTemplate(){
return new RestTemplate();
}