前奏
關於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",發現瀏覽器給出迴應:
則說明測試成功!