Spring-cloud 注冊(cè)服務(wù)提供者搭建方法
上文已經(jīng)寫了如何去搭建注冊(cè)中心,僅有注冊(cè)中心是遠(yuǎn)遠(yuǎn)不夠的,所以我們需要注冊(cè)到注冊(cè)中心并提供服務(wù)的節(jié)點(diǎn),這里稱為注冊(cè)服務(wù)提供者
前提
閱讀上文,并成功搭建注冊(cè)中心,環(huán)境無(wú)需改變
項(xiàng)目搭建
這里我們需要新建一個(gè)maven項(xiàng)目,項(xiàng)目名稱之前沒(méi)有起好,這里就參考一下,我的是SpringCloudDemo,不要在意這些細(xì)節(jié)!
修改pom文件,參考如下:
注意:請(qǐng)看好這些jar包的版本號(hào),文末我會(huì)貼出之前我搭建的兩個(gè)比較簡(jiǎn)單的demo的github路徑
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hellxz</groupId> <artifactId>SpringCloudDemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>SpringCloudDemo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--用于監(jiān)控項(xiàng)目,提供項(xiàng)目中的狀態(tài)信息--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--junit測(cè)試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
雖然版本號(hào)不同于EurekaServer注冊(cè)中心項(xiàng)目,但是經(jīng)實(shí)踐是可以正常使用的,請(qǐng)放心
新建一個(gè)啟動(dòng)類(每個(gè)springboot項(xiàng)目中都有)
package com.hellxz.springcloudhelloworld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /** * @Author : Hellxz * @Description: EurekaClient * @Date : 2018/4/13 16:57 */ @EnableDiscoveryClient @SpringBootApplication public class SpringCloudDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudDemoApplication.class, args); } }
新建一個(gè)controller類,留作之后測(cè)試
package com.hellxz.springcloudhelloworld; 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.RequestMethod; import org.springframework.web.bind.annotation.RestController; /** * @Author : Hellxz * @Description: 服務(wù)提供者 * @Date : 2018/4/12 11:36 */ @RestController public class SpringbootController { @Autowired private DiscoveryClient client; //注入發(fā)現(xiàn)客戶端 private final Logger logger = Logger.getLogger(SpringbootController.class); @RequestMapping(value = "/hello", method = RequestMethod.GET) public String hello(){ //獲取服務(wù)實(shí)例,作用為之后console顯示效果 ServiceInstance serviceInstance = client.getLocalServiceInstance(); logger.info("/hello host:"+serviceInstance.getHost()+" service_id:" +serviceInstance.getServiceId()); return "hello"; } }
在src/resources文件夾下創(chuàng)建application.yml 這次使用yaml進(jìn)行配置,如果想嘗試properties文件方式,請(qǐng)參考上文,此處配置的提供服務(wù)地址請(qǐng)參考注冊(cè)中心的配置
server: port: 8080 spring: application: name: hello-service eureka: client: serviceUrl: defaultZone: http://localhost:1111/eureka/
好了,我們將這個(gè)項(xiàng)目跑在8080端口,并可以去注冊(cè)中心注冊(cè)服務(wù)了
先啟動(dòng)注冊(cè)中心的項(xiàng)目,待其啟動(dòng)完畢之后,在來(lái)啟動(dòng)本項(xiàng)目。
測(cè)試
輸入注冊(cè)中心的url查看:localhost:1111
訪問(wèn)剛才配置的controller路徑: http://localhost:8080/hello
如右圖所示,注冊(cè)成功。
此時(shí)我們就可以使用這個(gè)項(xiàng)目進(jìn)行提供服務(wù)了
示例demo:
https://github.com/HellxZ/EurekaServer
https://github.com/HellxZ/EurekaClient
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來(lái)控制程序的流程2022-04-04Java命令行參數(shù)解析工具jcommander詳解
這篇文章主要為大家介紹了Java命令行參數(shù)解析工具jcommander命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09nacos配置實(shí)例權(quán)重不生效問(wèn)題
這篇文章主要介紹了nacos配置實(shí)例權(quán)重不生效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Springboot實(shí)現(xiàn)根據(jù)用戶ID切換動(dòng)態(tài)數(shù)據(jù)源
在很多具體應(yīng)用場(chǎng)景中,我們需要用到動(dòng)態(tài)數(shù)據(jù)源的情況,比如多租戶的場(chǎng)景,系統(tǒng)登錄時(shí)需要根據(jù)用戶信息切換到用戶對(duì)應(yīng)的數(shù)據(jù)庫(kù)。這篇文章主要介紹了SpringBoot根據(jù)用戶ID實(shí)現(xiàn)切換動(dòng)態(tài)數(shù)據(jù)源的示例代碼,感興趣的可以了解一下2021-12-12spring boot實(shí)戰(zhàn)之內(nèi)嵌容器tomcat配置
本篇文章主要介紹了Spring Boot 使用內(nèi)嵌的tomcat容器配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Spring Boot FeignClient 如何捕獲業(yè)務(wù)異常信息
這篇文章主要介紹了Spring Boot FeignClient 如何捕獲業(yè)務(wù)異常信息的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java 實(shí)戰(zhàn)項(xiàng)目之疫情人員流動(dòng)管理系統(tǒng)詳解
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)疫情人員流動(dòng)管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11