通常來講,Intelij IDEA 能夠經過 Maven Archetype 來快速生成Maven項目,其實 IDEA 集成了 Spring 官方提供的 Spring Initializr,能夠很是方便的建立 Maven 項目,並且能自動生成啓動類和單元測試代碼。java
下面咱們學習如何快速搭建一個 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本,使用少許的代碼,能夠在半小時內完成項目的搭建。web
本文爲新手向教程,幫助你們快速入門 Spring Cloud 開發,也做爲「跟我學 Spring Cloud Alibaba」系列的補充文章,文章會在公衆號「架構進化論」進行首發更新,歡迎關注。spring
1.建立一個新工程,選擇maven,點擊下一步瀏覽器
2.填寫項目相關的信息,進到下一步架構
3.填寫項目名和項目位置,命名爲 spring cloud demo,點擊 finishapp
4.這樣咱們就建立好了一個普通項目,該項目是做爲一個Parent project存在的,能夠直接刪除src文件maven
1.在項目上右鍵-->new-->module-->Spring Initializr-->nextspring-boot
2.填寫項目相關信息,這裏命名爲 eureka-server,進入下一步工具
3.選擇Cloud Discovery-->Eureka Server,下一步單元測試
4.填寫項目名和項目位置等,完成
5.IDEA會自動生成Application類,添加@EnableEurekaServer,該註解代表標註類是一個Eureka Server
6.修改配置,切換啓動端口,默認生成的項目配置文件是 application.properties,這裏我替換成application.yml
# 服務註冊中心 (單節點) server: port: 8761 eureka: instance: hostname: localhost client: fetch-registry: false # 表示是否從Eureka Server獲取註冊信息,默認爲true.由於這是一個單點的Eureka Server,不須要同步其餘的Eureka Server節點的數據,這裏設置爲false register-with-eureka: false # 表示是否將本身註冊到Eureka Server,默認爲true.因爲當前應用就是Eureka Server,故而設置爲false. service-url: # 設置與Eureka Server的地址,查詢服務和註冊服務都須要依賴這個地址.默認是http://localhost:8761/eureka/;多個地址可以使用','風格. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
eureka的配置信息能夠查看 org.springframework.cloud.netflix.eureka. EurekaClientConfigBean ,參考源碼瞭解含義。
7.啓動項目,在瀏覽器中輸入http://localhost:8761/ ,訪問Eureka控制檯,服務正常啓動
8.若是啓動報錯,配置文件未生效,檢查下 target 目錄下是否正確引用了 application.yml 文件。
1.按照一樣的方式,建立一個項目,這裏咱們建立一個Spring Boot風格的服務,
建立時須要勾選 Spring Cloud Discover--> Eureka Discover Client 和 Spring Web 的依賴。
2.在application啓動類中加入註解@EnableEurekaClient,代表本身屬於一個生產者。這裏爲了方便測試,直接使用@RestController獲取返回值。
3.修改配置,註冊到Eureka Server。
server: port: 8765 spring: application: name: eureka-producer eureka: client: service-url: defaultZone: http://localhost:8761/eureka # 指定服務註冊中心
4.啓動應用,刷新Eureka控制檯,能夠看到服務已經註冊到Eureka上
5.若是啓動有問題,檢查是否缺乏Spring Boot web的依賴包,能夠嘗試添加以下配置:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
1.經過 Spring Initializr,建立一個 Eureka Discovery Client 模塊,同時要勾選加入Spring Web依賴。
2.修改原有配置,指定服務註冊中心,這裏仍是使用yml文件。
server: port: 8763 spring: application: name: eureka-consumer eureka: client: service-url: defaultZone: http://localhost:8761/eureka # 指定服務註冊中心
2.在啓動類中添加@EnableDiscoveryClient代表標註類是消費者,加入restTemplate來消費相關的服務。
@SpringBootApplication @EnableDiscoveryClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
3.建立controller層,消費遠程服務
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class DemoController {
@Autowired
RestTemplate restTemplate;
@RequestMapping("greet")
public String sayHello(@RequestParam String name){
return restTemplate.getForObject("http://EUREKA-PRODUCER/sayHello?param=" + name, String.class);
}
}
4.配置完畢之後,啓動服務消費者,刷新Eureka控制檯,能夠看到消費者已經註冊。
5.打開瀏覽器輸入localhost:{server.port}/path 進行服務調用,
這裏我用 http://localhost:8763/greet?name=eureka ,能夠看到請求正確返回,正確調用了服務提供者。
本文經過IDEA的插件,快速建立了一個基於Eureka進行服務發現的Spring Cloud工程實例。
除了集成插件,也能夠直接訪問 http://start.spring.io ,經過引導,在腳手架中建立本身的項目,導入到開發工具中,感興趣的同窗能夠去試下。