【问题标题】:Spring MVC Redirects with Spring Cloud EurekaSpring MVC 重定向与 Spring Cloud Eureka
【发布时间】:2020-07-31 09:15:51
【问题描述】:

当使用 Spring MVC 和 Spring Cloud Eureka 时,如何让 Spring MVC 解析我的重定向 URL,类似于 RestTemplate 能够做到的?

例如,如果我有两个服务,用户服务和电影服务,它们都注册到 Spring Cloud Eureka,我怎样才能让用户服务中的控制器重定向到电影服务端点,而无需硬编码网址?

@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 应用程序与之集成似乎也很有意义。

【问题讨论】:

    标签: spring microservices spring-cloud spring-cloud-netflix


    【解决方案1】:
    @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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2018-07-31
      • 2021-05-27
      • 2017-07-21
      • 2015-05-12
      • 2014-06-20
      • 2015-06-05
      • 1970-01-01
      • 2018-04-29
      相关资源
      最近更新 更多