前奏
关于eureka注册中心的搭建,可以参考我的这篇博客:零基础也能学会的SpringCloud教程(一): eureka注册中心的搭建
关于eureka注册中心设置访问密码,可以参考我的这篇博客:零基础也能学会的SpringCloud教程(二): eureka注册中心设置访问密码
开整
1.在之前的主Maven工程helloguqueyue
下,右击项目名,像之前创建guqueyue-eureka(注册中心)
一样创建一个新的Module工程guqueyue-client
:
2.往工程guqueyue-client
的pom.xml
依赖管理文件中分别添加Eureka Client所需的spring-cloud-starter-netflix-eureka-client
依赖以及web所需的spring-boot-starter-web
起步依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.在工程guqueyue-client
的src/main/resources
目录下新建一个配置文件application.yml
并配置它:
# 配置端口号
server:
port: 8080
spring:
# 配置微服务的名称
application:
name: guqueyue-client
eureka:
client:
# 注册中心的地址
service-url:
defaultZone: http://guqueyue:guqueyue@localhost:10086/eureka
4.在工程guqueyue-client
的src/main/java
目录下创建一个启动类,如这里我是创建在com.guqueyue
的包下:
package com.guqueyue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* @author guqueyue
* @Date 2020/7/2
**/
@EnableEurekaClient
@SpringBootApplication
public class EurekaClientStartApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientStartApplication.class, args);
}
}
5.启动guqueyue-client
工程,观察到控制台有这样一行信息(一定要先记得启动guqueyue-eureka(注册中心)
),则说明guqueyue-client
工程向guqueyue-eureka(注册中心)
成功注册!:
com.netflix.discovery.DiscoveryClient : DiscoveryClient_GUQUEYUE-CLIENT/DESKTOP-MVLS622:guqueyue-client:8080 - registration status: 204
6.在浏览器输入"http://localhost:10086",打开Eureka注册中心的主页,主页如图所示:
我们可以很轻松的发现在主页上的Instance currently registered with Eureka即当前已在Eureka上注册的实例选项中已经有一个Application即应用名为:GUQUEYUE-CLIENT,Staus即状态为UP(在线状态),端口号为8080的实例注册了,说明注册是真的成功了!
7.接下来在guqueyue-client
工程的src/main/java/com/guqueyue
目录下新建一个包controller
,再在包controller
下新建一个controller来测试一下:
package com.guqueyue.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author guqueyue
* @Date 2020/7/2
**/
@RestController
public class HelloController {
// 获取配置文件 application.yml中的端口号
@Value("${server.port}")
String port;
获取配置文件 application.yml中的应用名称
@Value("${spring.application.name}")
String applicationName;
@GetMapping("/hello")
public String hello(@RequestParam String name) {
return "hello " + name + ", I am from " + applicationName + "`s " + port + "!!!";
}
}
重启程序,然后在浏览器上输入"http://localhost:8080/hello?name=guqueyue",发现浏览器给出回应:
则说明测试成功!