add feign sample

This commit is contained in:
Spencer Gibb
2015-09-03 22:01:34 -06:00
parent 998cbc9c4b
commit 6fdd751256
2 changed files with 28 additions and 15 deletions

View File

@@ -49,22 +49,11 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<!--<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.1.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-ui</artifactId>
</dependency>-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>

View File

@@ -16,6 +16,8 @@
package org.springframework.cloud.consul.sample;
import java.util.List;
import javax.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
@@ -32,17 +34,18 @@ import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.cloud.consul.bus.SimpleRemoteEvent;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.cloud.ui.EnableConsulUi;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author Spencer Gibb
*/
@@ -52,6 +55,7 @@ import java.util.List;
@EnableConsulUi
@RestController
@EnableConfigurationProperties
@EnableFeignClients
@Slf4j
public class SampleConsulApplication implements ApplicationListener<SimpleRemoteEvent> {
@@ -67,6 +71,9 @@ public class SampleConsulApplication implements ApplicationListener<SimpleRemote
@Autowired(required = false)
private RelaxedPropertyResolver resolver;
@Autowired
private SampleClient sampleClient;
@Value("${spring.application.name:testConsulApp}")
private String appName;
@@ -87,6 +94,11 @@ public class SampleConsulApplication implements ApplicationListener<SimpleRemote
return loadBalancer.choose(appName);
}
@RequestMapping("/choose")
public String choose() {
return loadBalancer.choose(appName).getUri().toString();
}
@RequestMapping("/myenv")
public String env(@RequestParam("prop") String prop) {
return resolver.getProperty(prop, "Not Found");
@@ -102,6 +114,11 @@ public class SampleConsulApplication implements ApplicationListener<SimpleRemote
return discoveryClient.getInstances(appName);
}
@RequestMapping("/feign")
public String feign() {
return sampleClient.choose();
}
@Bean
public SubtypeModule sampleSubtypeModule() {
return new SubtypeModule(SimpleRemoteEvent.class);
@@ -120,4 +137,11 @@ public class SampleConsulApplication implements ApplicationListener<SimpleRemote
public void onApplicationEvent(SimpleRemoteEvent event) {
log.info("Received event: {}", event);
}
@FeignClient("testConsulApp")
public interface SampleClient {
@RequestMapping(value = "/choose", method = RequestMethod.GET)
String choose();
}
}