在使用Spring MVC和Spring Cloud Eureka时,我如何让Spring MVC像RestTemplate一样解析我的重定向URL?
例如,如果我有两个都注册到Spring Cloud Eureka的服务,用户服务和电影服务,我如何才能让用户服务中的控制器重定向到电影服务端点,而不需要对url进行硬编码?
@Controller
public class UserServiceController {
@PostMapping("/something")
public String performSomeAction() {
// I'd like movie service to be resolved to an instance that is registered with Eureka
return "redirect:http://movie-service/some-url
}
}
我想要做的事情是可能的吗?我知道Spring cloud通常与API一起使用,但在我看来,能够将您的web应用程序与它集成在一起似乎是有意义的。
发布于 2020-04-18 03:16:07
@Controller
public class UserServiceController {
@Autowired
LoadBalancerClient loadBalancerClient;
@PostMapping("/something")
public String performSomeAction() {
ServiceInstance serviceInstance = loadBalancerClient.choose("movie-service");
if (serviceInstance != null) {
return "redirect:http://"+ serviceInstance.getHost() + ":" + serviceInstance.getPort() +"/some-url
}
// throw an error or something else
}
}
https://stackoverflow.com/questions/61278930
复制相似问题