SpringCloud微服務系列(2): 建立一個基於Springboot的RESTFul服務
SpringCloud微服務系列(2): 建立一個基於Springboot的RESTFul服務
作者:家輝,日期:2017-07-31 CSDN部落格:
http://blog.csdn.net/gobitan
摘要:在前一篇系列(1)中建立了一個Eureka微服務註冊中心。本文將建立一個基於Springboot的RESTFul服務,它可以註冊到Eureka Server中。
第一步:建立支援Web和Eureka Discovery的Spring Boot工程
通過http://start.spring.io/建立一個Spring Boot工程,具體引數如下:
Generate a "Maven Project" with "Java" and Spring Boot"1.5.6",
ProjectMetadata Group: cn.dennishucd
Artifact: springboot
Dependencies: Web和Eureka Discovery
然後點選"Generate Project"即可得到一個包含Web和Eureka Discovery的Spring boot工程。
[1] 在生成的工程中,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] 在主類SpringBootApplication中包含了,表示開啟Eureka註冊功能。註解@EnableDiscoveryClient
第二步:新增HelloController類,如下:
package cn.dennishucd.springboot;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
private final Logger logger = Logger.getLogger(getClass());
@Autowired
private DiscoveryClient client;
@RequestMapping("/hello")
public String hello() {
ServiceInstance instance = client.getLocalServiceInstance();
logger.info("/hello, host:"+instance.getHost()+", service_id:"+instance.getServiceId());
return "Hello World!";
}
}
本類建立了一個hello服務,返回“Hello World!”
第三步:修改SpringbootApplication主類
在SpringbootApplication類中新增註解@EnableDiscoveryClient,開啟服務註冊功能。
第四步: 修改application.properties配置檔案
在application.properties配置檔案中新增如下兩行,設定服務名稱和服務註冊中心地址。
spring.application.name=hello-service
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka
注意:這裡的eureka註冊地址是“SpringCloud微服務系列(1): 建立Eureka服務註冊中心”中建好的。
第五步:啟動基於Springboot的Hello服務
注意:啟動這一步之前,如果前面的註冊中心未啟動,需要先啟動註冊中心。
[1]啟動Springboot工程,註冊成功會返回列印類似日誌:DiscoveryClient_HELLO-SERVICE/PC-20170620QIZK:hello-service - registration status: 204
[2] 在eureka-server的控制檯也可以看到類似日誌:Registered instance HELLO-SERVICE/PC-20170620QIZK:hello-service with status UP (replication=false)
[3] 然後在http://localhost:1111/的Web上也可以看到當前註冊成功的服務。如下所示:
第六步:請求hello服務
訪問http://localhost:8080/hello服務,可以在springboot工程中看到類似輸出:/hello, host:PC-20170620QIZK, service_id:hello-service。這是之前在HelloController中注入的DiscoveryClient介面物件從伺服器註冊中心獲取的服務相關資訊。
相關文章
- Flask 系列 - 基於 Flask 提供 RESTful Web 服務FlaskRESTWeb
- SpringCloud微服務系列(5): 服務容錯斷路器HystrixSpringGCCloud微服務
- SpringCloud微服務系列- 服務間通訊之負載均衡SpringGCCloud微服務負載
- Springboot 實現 Restful 服務,基於 HTTP / JSON 傳輸Spring BootRESTHTTPJSON
- 基於SpringCloud的微服務架構設計SpringGCCloud微服務架構
- SpringCloud微服務基礎SpringGCCloud微服務
- SpringCloud微服務:基於Nacos元件,整合Dubbo框架SpringGCCloud微服務元件框架
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務提供與呼叫分散式微服務GCCloudSpring BootMyBatis
- SpringCloud微服務理解(一)SpringGCCloud微服務
- 第19章 建立RESTful Web服務RESTWeb
- 微服務設計學習(一)關於微服務和如何建模服務微服務
- go微服務系列(二) - 服務註冊/服務發現Go微服務
- 基於Spring Cloud微服務叢集的服務治理思考SpringCloud微服務
- 微服務SpringCloud之服務註冊與發現微服務SpringGCCloud
- go微服務系列(三) - 服務呼叫(http)Go微服務HTTP
- SpringCloud微服務(基於Eureka+Feign+Hystrix+Zuul)SpringGCCloud微服務Zuul
- SpringCloud分散式微服務b2b2c電子商務(二)Eureka(服務註冊和服務發現基礎篇)SpringGCCloud分散式微服務
- 基於 SpringMVC 的 RESTful HTTP API 實踐(服務端)SpringMVCRESTHTTPAPI服務端
- 微服務之springcloud eureka(一)微服務SpringGCCloud
- 企業分散式微服務雲SpringCloud SpringBoot mybatis - 服務消費者(Feign)分散式微服務GCCloudSpring BootMyBatis
- 微服務架構 | 5.2 基於 Sentinel 的服務限流及熔斷微服務架構
- SpringCloud微服務系列- 分散式能力建設之微服務閘道器SpringGCCloud微服務分散式
- yii2 restful web服務路由RESTWeb路由
- 運維安全系列基礎服務之 FTP 服務(系列一)運維FTP
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務的註冊與發現(Eureka)分散式微服務GCCloudSpring BootMyBatis
- RESTFul Web Api 服務框架(一)RESTWebAPI框架
- 基於.NET CORE微服務框架 -Api閘道器服務管理微服務框架API
- SpringCloud分散式微服務b2b2c電子商務(五)springboot整合 beatlsqlGCCloud分散式微服務Spring BootTLSSQL
- SpringCloud分散式微服務b2b2c電子商務(十三)Springboot整合RabbitMQGCCloud分散式微服務Spring BootMQ
- SpringCloud分散式微服務b2b2c電子商務-SpringBoot 整合JPA(四)GCCloud分散式微服務Spring Boot
- 使用SCA和JAX-RS建立RESTful服務REST
- InfoQ: 建立RESTful服務,有GET和POST足矣?REST
- 基於Nginx搭建一個安全的、快速的微服務架構Nginx微服務架構
- 用 Go 快速開發一個 RESTful API 服務GoRESTAPI
- SpringCloud微服務治理SpringGCCloud微服務
- springcloud 微服務面試SpringGCCloud微服務面試
- 微服務實戰系列(三)-springcloud、springboot及maven之間關係微服務GCCloudSpring BootMaven