十七、springcloud(三)服务的注册与调用
1、启动服务注册中心Eureka(见上篇)
启动成功后,暂时无服务

2、项目框架

3、创建服务提供者(spring-cloud-houge-provider)jar
a、application.properties
spring.application.name=spring-cloud-provider server.port=9000 eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
b、启动类
@SpringBootApplication @EnableDiscoveryClient //使项目有服务注册功能 public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
c、Controller
@RestController @RequestMapping("/dynasty") public class DynastyController { @RequestMapping("/hello") public String hello(@RequestParam String name) { return "hello, " + name; } }
d、启动测试http://localhost:9000/dynasty/hello?name=houge

e、http://localhost:8000/

4、创建消费者(spring-cloud-houge-consumer)jar
a、application.properties
spring.application.name=spring-cloud-consumer server.port=9001 eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
b、添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>
c、启动类
@SpringBootApplication @EnableDiscoveryClient //启用服务注册与发现 @EnableFeignClients //启用feign进行远程调用 public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
d、feign调用实现
@FeignClient(name= "spring-cloud-provider") //name:远程服务名,及spring.application.name配置的名称 public interface DynastyService { @RequestMapping(value="/dynasty/hello") public String hello(@RequestParam(value = "name")String name); }
e、web层调用远程服务
@RestController @RequestMapping("/dynasty") public class DynastyController { @Autowired private DynastyService dynastyService; @RequestMapping("/hello") public String hello(String name) { String value = dynastyService.hello(name); return value; } }
f、启动测试http://192.168.0.131:9001/dynasty/hello?name=monkey

h、http://localhost:8000/

浙公网安备 33010602011771号