title: Spring Cloud and Maven - What dependencies do I need?
body: <p>I am extremely confused by Spring's Cloud module. I genuinely do not understand how to do the basic setup for it. </p>
  
  <p>When I start my Spring Cloud application with the usual spring-boot parent, then I get this message: <em>Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. Please remove spring-boot-starter-web dependency.</em></p>
  
  <p>Alright, so no spring-boot-starter-web dependency. But then I am looking at the official "Getting Started" guide of Spring Cloud: <a href="https://spring.io/guides/gs/gateway/" rel="nofollow noreferrer">Spring Cloud getting started</a>. I copy the mentioned dependencies 1:1 and end up with the same message in the server(?) start output as previously. Which makes sense, because the code on that site also sets the typical spring-boot-starter-parent, which also uses the spring-boot-starter-web dependency. That already contradicts with each other?? </p>
  
  <p>But then there is also a section called "<em>Building a Simple Gateway Using Spring MVC or Webflux</em>" in the official Spring Cloud documentation: <a href="https://cloud.spring.io/spring-cloud-gateway/reference/html/#_building_a_simple_gateway_using_spring_mvc_or_webflux" rel="nofollow noreferrer">Spring Cloud reference</a></p>
  
  <p>I am really confused. When I try to start Spring Cloud in the same way that the getting-started documentation suggests, I get the mentioned "not-compatible" output message and also this exception: </p>
  
  <blockquote>
    <p>Error creating bean with name 'routeDefinitionRouteLocator' defined in
    class path resource
    [org/springframework/cloud/gateway/config/GatewayAutoConfiguration.class]:
    Unsatisfied dependency expressed through method
    'routeDefinitionRouteLocator' parameter 4;</p>
  </blockquote>
  
  <p>Trying to define a RouteLocator-bean myself so that the auto-configuration doesn't trigger does not seem to work. That's why I am thinking this whole Spring Cloud &lt;> Spring MVC thing is causing the issue. But the existing documentation on Spring Cloud keeps contradicting each other whether or not you can use these two together or not or what the consequences are or anything. </p>