title: @EnableFeignClients and @FeignClient fail on Autowiring 'FeignContext' NoSuchBeanException
body: <p>The microservice I'm writting needs to communicate to other microservices in our platform. On that attempt, the ideal solution for us is <strong>Spring Cloud Netflix Feign</strong>, implemeting a <strong><code>@FeignClient</code></strong>.</p>
  
  <p>However, I'm facing the exception below when I try an <code>@Autowired ReviewProvider</code>:</p>
  
  <p><strong>Exception (cause)</strong></p>
  
  <pre><code>Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.netflix.feign.FeignContext' available
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:353)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:351)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:340)
      at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093)
      at org.springframework.cloud.netflix.feign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:155)
      at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
  </code></pre>
  
  <p><strong>ReviewProvider.java</strong></p>
  
  <pre><code>@FeignClient("http://metadata-reviews")
  public interface ReviewProvider {
  
      @RequestMapping(path = "sessions", method = POST)
      ReviewSessionDTO createSession();
  
  }
  </code></pre>
  
  <p><strong>ReviewProvider.java</strong></p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @ActiveProfiles(INTEGRATION)
  @ContextConfiguration(classes = AppEntry.class)
  @AutoConfigureTestDatabase(replace = Replace.NONE)
  @DataJpaTest
  public class ReviewProviderTest {
  
      @Autowired
      private ReviewProvider provider;
      private Class&lt;? extends ReviewProvider&gt; providerClass;
  
      @Before
      public void setup() {
          providerClass = provider.getClass();
      }
  
      @Test
      public void classAnnotations() {
          assertTrue(providerClass.isAnnotationPresent(FeignClient.class));
          assertEquals("http://metadata-reviews", providerClass.getAnnotation(FeignClient.class).value());
      }
  
      @Test
      public void createSession() throws Exception {
          final Method method = providerClass.getDeclaredMethod("createSession");
          assertTrue(method.isAnnotationPresent(RequestMapping.class));
  
          final RequestMapping mapping = method.getAnnotation(RequestMapping.class);
          assertEquals("sessions", mapping.path());
          assertEquals(0, method.getParameters().toString());
      }
  }
  </code></pre>