From be188031043c8d119e9db05fbd0dbd6806884ae5 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Thu, 1 Aug 2019 11:24:00 +0800 Subject: [PATCH] Update The sample --- .../DubboSpringCloudConsumerBootstrap.java | 295 +++++++++--------- 1 file changed, 154 insertions(+), 141 deletions(-) diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java index c8d787e8..37361fc8 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/java/com/alibaba/cloud/dubbo/bootstrap/DubboSpringCloudConsumerBootstrap.java @@ -27,12 +27,15 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Lazy; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -52,194 +55,204 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE; @EnableDiscoveryClient @EnableAutoConfiguration @EnableFeignClients +@EnableScheduling +@EnableCaching public class DubboSpringCloudConsumerBootstrap { - @Reference - private UserService userService; + @Reference + private UserService userService; - @Reference(version = "1.0.0", protocol = "dubbo") - private RestService restService; + @Reference(version = "1.0.0", protocol = "dubbo") + private RestService restService; - @Autowired - @Lazy - private FeignRestService feignRestService; + @Autowired + @Lazy + private FeignRestService feignRestService; - @Autowired - @Lazy - private DubboFeignRestService dubboFeignRestService; + @Autowired + @Lazy + private DubboFeignRestService dubboFeignRestService; - @Value("${provider.application.name}") - private String providerApplicationName; + @Value("${provider.application.name}") + private String providerApplicationName; - @Autowired - @LoadBalanced - private RestTemplate restTemplate; + @Autowired + @LoadBalanced + private RestTemplate restTemplate; - @FeignClient("${provider.application.name}") - public interface FeignRestService { + @FeignClient("${provider.application.name}") + public interface FeignRestService { - @GetMapping(value = "/param") - String param(@RequestParam("param") String param); + @GetMapping(value = "/param") + String param(@RequestParam("param") String param); - @PostMapping("/params") - public String params(@RequestParam("b") String b, @RequestParam("a") int a); + @PostMapping("/params") + public String params(@RequestParam("b") String b, @RequestParam("a") int a); - @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_UTF8_VALUE) - User requestBody(@RequestParam("param") String param, - @RequestBody Map data); + @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_UTF8_VALUE) + User requestBody(@RequestParam("param") String param, + @RequestBody Map data); - @GetMapping("/headers") - public String headers(@RequestHeader("h2") String header2, - @RequestHeader("h") String header, @RequestParam("v") Integer value); + @GetMapping("/headers") + public String headers(@RequestHeader("h2") String header2, + @RequestHeader("h") String header, @RequestParam("v") Integer value); - @GetMapping("/path-variables/{p1}/{p2}") - public String pathVariables(@PathVariable("p2") String path2, - @PathVariable("p1") String path1, @RequestParam("v") String param); - } + @GetMapping("/path-variables/{p1}/{p2}") + public String pathVariables(@PathVariable("p2") String path2, + @PathVariable("p1") String path1, @RequestParam("v") String param); + } - @FeignClient("${provider.application.name}") - @DubboTransported(protocol = "dubbo") - public interface DubboFeignRestService { + @FeignClient("${provider.application.name}") + @DubboTransported(protocol = "dubbo") + public interface DubboFeignRestService { - @GetMapping(value = "/param") - String param(@RequestParam("param") String param); + @GetMapping(value = "/param") + String param(@RequestParam("param") String param); - @PostMapping("/params") - String params(@RequestParam("b") String paramB, @RequestParam("a") int paramA); + @PostMapping("/params") + String params(@RequestParam("b") String paramB, @RequestParam("a") int paramA); - @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_UTF8_VALUE) - User requestBody(@RequestParam("param") String param, - @RequestBody Map data); + @PostMapping(value = "/request/body/map", produces = APPLICATION_JSON_UTF8_VALUE) + User requestBody(@RequestParam("param") String param, + @RequestBody Map data); - @GetMapping("/headers") - public String headers(@RequestHeader("h2") String header2, - @RequestParam("v") Integer value, @RequestHeader("h") String header); + @GetMapping("/headers") + public String headers(@RequestHeader("h2") String header2, + @RequestParam("v") Integer value, @RequestHeader("h") String header); - @GetMapping("/path-variables/{p1}/{p2}") - public String pathVariables(@RequestParam("v") String param, - @PathVariable("p2") String path2, @PathVariable("p1") String path1); - } + @GetMapping("/path-variables/{p1}/{p2}") + public String pathVariables(@RequestParam("v") String param, + @PathVariable("p2") String path2, @PathVariable("p1") String path1); + } - @Bean - public ApplicationRunner userServiceRunner() { - return arguments -> { + @Bean + public ApplicationRunner userServiceRunner() { + return arguments -> { - User user = new User(); - user.setId(1L); - user.setName("小马哥"); - user.setAge(33); + User user = new User(); + user.setId(1L); + user.setName("小马哥"); + user.setAge(33); - // save User - System.out.printf("UserService.save(%s) : %s\n", user, - userService.save(user)); + // save User + System.out.printf("UserService.save(%s) : %s\n", user, + userService.save(user)); - // find all Users - System.out.printf("UserService.findAll() : %s\n", user, - userService.findAll()); + // find all Users + System.out.printf("UserService.findAll() : %s\n", user, + userService.findAll()); - // remove User - System.out.printf("UserService.remove(%d) : %s\n", user.getId(), - userService.remove(user.getId())); + // remove User + System.out.printf("UserService.remove(%d) : %s\n", user.getId(), + userService.remove(user.getId())); - }; - } + }; + } - @Bean - public ApplicationRunner callRunner() { - return arguments -> { + @Bean + public ApplicationRunner callRunner() { + return arguments -> { + callAll(); + }; + } - // To call /path-variables - callPathVariables(); + private void callAll() { - // To call /headers - callHeaders(); + // To call /path-variables + callPathVariables(); - // To call /param - callParam(); + // To call /headers + callHeaders(); - // To call /params - callParams(); + // To call /param + callParam(); - // To call /request/body/map - callRequestBodyMap(); + // To call /params + callParams(); - }; - } + // To call /request/body/map + callRequestBodyMap(); + } - private void callPathVariables() { - // Dubbo Service call - System.out.println(restService.pathVariables("a", "b", "c")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.pathVariables("c", "b", "a")); - // Spring Cloud Open Feign REST Call + @Scheduled(fixedDelay = 10 * 1000L) + public void onScheduled() { + callAll(); + } + + private void callPathVariables() { + // Dubbo Service call + System.out.println(restService.pathVariables("a", "b", "c")); + // Spring Cloud Open Feign REST Call (Dubbo Transported) + System.out.println(dubboFeignRestService.pathVariables("c", "b", "a")); + // Spring Cloud Open Feign REST Call // System.out.println(feignRestService.pathVariables("b", "a", "c")); - // RestTemplate call - System.out.println(restTemplate.getForEntity( - "http://" + providerApplicationName + "//path-variables/{p1}/{p2}?v=c", - String.class, "a", "b")); - } + // RestTemplate call + System.out.println(restTemplate.getForEntity( + "http://" + providerApplicationName + "//path-variables/{p1}/{p2}?v=c", + String.class, "a", "b")); + } - private void callHeaders() { - // Dubbo Service call - System.out.println(restService.headers("a", "b", 10)); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.headers("b", 10, "a")); - // Spring Cloud Open Feign REST Call + private void callHeaders() { + // Dubbo Service call + System.out.println(restService.headers("a", "b", 10)); + // Spring Cloud Open Feign REST Call (Dubbo Transported) + System.out.println(dubboFeignRestService.headers("b", 10, "a")); + // Spring Cloud Open Feign REST Call // System.out.println(feignRestService.headers("b", "a", 10)); - } + } - private void callParam() { - // Dubbo Service call - System.out.println(restService.param("mercyblitz")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.param("mercyblitz")); - // Spring Cloud Open Feign REST Call + private void callParam() { + // Dubbo Service call + System.out.println(restService.param("mercyblitz")); + // Spring Cloud Open Feign REST Call (Dubbo Transported) + System.out.println(dubboFeignRestService.param("mercyblitz")); + // Spring Cloud Open Feign REST Call // System.out.println(feignRestService.param("mercyblitz")); - } + } - private void callParams() { - // Dubbo Service call - System.out.println(restService.params(1, "1")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.params("1", 1)); - // Spring Cloud Open Feign REST Call + private void callParams() { + // Dubbo Service call + System.out.println(restService.params(1, "1")); + // Spring Cloud Open Feign REST Call (Dubbo Transported) + System.out.println(dubboFeignRestService.params("1", 1)); + // Spring Cloud Open Feign REST Call // System.out.println(feignRestService.params("1", 1)); - // RestTemplate call - System.out.println(restTemplate.getForEntity( - "http://" + providerApplicationName + "/param?param=小马哥", String.class)); - } + // RestTemplate call + System.out.println(restTemplate.getForEntity( + "http://" + providerApplicationName + "/param?param=小马哥", String.class)); + } - private void callRequestBodyMap() { + private void callRequestBodyMap() { - Map data = new HashMap<>(); - data.put("id", 1); - data.put("name", "小马哥"); - data.put("age", 33); + Map data = new HashMap<>(); + data.put("id", 1); + data.put("name", "小马哥"); + data.put("age", 33); - // Dubbo Service call - System.out.println(restService.requestBodyMap(data, "Hello,World")); - // Spring Cloud Open Feign REST Call (Dubbo Transported) - System.out.println(dubboFeignRestService.requestBody("Hello,World", data)); - // Spring Cloud Open Feign REST Call + // Dubbo Service call + System.out.println(restService.requestBodyMap(data, "Hello,World")); + // Spring Cloud Open Feign REST Call (Dubbo Transported) + System.out.println(dubboFeignRestService.requestBody("Hello,World", data)); + // Spring Cloud Open Feign REST Call // System.out.println(feignRestService.requestBody("Hello,World", data)); - // RestTemplate call - System.out.println(restTemplate.postForObject( - "http://" + providerApplicationName + "/request/body/map?param=小马哥", data, - User.class)); - } + // RestTemplate call + System.out.println(restTemplate.postForObject( + "http://" + providerApplicationName + "/request/body/map?param=小马哥", data, + User.class)); + } - @Bean - @LoadBalanced - @DubboTransported - public RestTemplate restTemplate() { - return new RestTemplate(); - } + @Bean + @LoadBalanced + @DubboTransported + public RestTemplate restTemplate() { + return new RestTemplate(); + } - public static void main(String[] args) { - new SpringApplicationBuilder(DubboSpringCloudConsumerBootstrap.class) - .properties("spring.profiles.active=nacos").run(args); - } + public static void main(String[] args) { + new SpringApplicationBuilder(DubboSpringCloudConsumerBootstrap.class) + .properties("spring.profiles.active=nacos").run(args); + } }