《spring cloud微服务开发》三、服务发现(注册服务提供者)
我们已经有了一个服务注册中心,这节我们讲下如何向服务注册中心注册服务。
1、我们新建一个maven项目eureka-client,在pom.xml中加入
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2、application.yml配置中加入
spring: application: name: service-common server: port: 9002 context-path: /eurekaClient eureka: client: service-url: defaultZone: http://root:changs@127.0.0.1:9000/eureka/
这里需要注意,由于我们注册中心启用了安全认证,这里的url需要加入用户名和密码。
3、启动类中启用注解@EnableEurekaClient或者@EnableDiscoveryClient
@SpringBootApplication
@EnableEurekaClient
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}这里我们使用的是EnableEurekaClient。EnableEurekaClient和EnableDiscoveryClient是EnableEurekaClient只能使用于注册中心是Eureka的,而EnableDiscoveryClient可以使用于任何注册中心。
启动应用,我们访问服务注册中心http://127.0.0.1:9000/,可以看到我们的服务已经注册成功了。

下面我们给这个服务添加一个具体的服务,如用户服务:
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/getNames")
public List getNames(){
List names = new ArrayList();
names.add("张三");
names.add("李四");
return names;
}
@RequestMapping("/getName")
public String getName(){
return "changs";
}
}用户服务中我们提供了2个接口,一个getNames获取姓名列表,一个getName获取姓名,这里我们只做演示,不具体从数据库中获取,代码中写死即可。
启动之后我们可以通过http://127.0.0.1:9002/eurekaClient/user/getNames访问。

下一节我们讲解如何在服务消费者中消费该服务。
声明:若要转载FengHuoX中的任何博客请注明转载地址