十分鍾快速創建 Spring Cloud 項目


摘自:https://www.cnblogs.com/binyue/p/12079356.html

十分鍾快速創建 Spring Cloud 項目

 

一般來說,Intelij IDEA 可以通過 Maven Archetype 來快速生成Maven項目,其實 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方便的創建 Maven 項目,而且能自動生成啟動類和單元測試代碼。

下面我們學習如何快速搭建一個 Spring Cloud 工程,示例使用 Spring Boot 2.2.2 版本,使用少量的代碼,可以在半小時內完成項目的搭建。

本文為新手向教程,幫助大家快速入門 Spring Cloud 開發,也作為「跟我學 Spring Cloud Alibaba」系列的補充文章,文章會在公眾號「架構進化論」進行首發更新,歡迎關注。

一、創建一個新工程

1.創建一個新工程,選擇maven,點擊下一步

2.填寫項目相關的信息,進到下一步

3.填寫項目名和項目位置,命名為 spring cloud demo,點擊 finish

4.這樣我們就創建好了一個普通項目,該項目是作為一個Parent project存在的,可以直接刪除src文件

 

二、添加 EurekaServer 子項目

1.在項目上右鍵-->new-->module-->Spring Initializr-->next

 

 

2.填寫項目相關信息,這里命名為 eureka-server,進入下一步

 

3.選擇Cloud Discovery-->Eureka Server,下一步

 

 

4.填寫項目名和項目位置等,完成

 

5.IDEA會自動生成Application類,添加@EnableEurekaServer,該注解表明標注類是一個Eureka Server

 

6.修改配置,切換啟動端口,默認生成的項目配置文件是 application.properties,這里我替換成application.yml

1
2
3
4
5
6
7
8
9
10
11
12
# 服務注冊中心 (單節點)
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 文件。

 

三、添加 EurekaProducer 服務生產者

1.按照同樣的方式,創建一個項目,這里我們創建一個Spring Boot風格的服務,

創建時需要勾選 Spring Cloud Discover--> Eureka Discover Client 和 Spring Web 的依賴。

 

2.在application啟動類中加入注解@EnableEurekaClient,表明自己屬於一個生產者。這里為了方便測試,直接使用@RestController獲取返回值。

 

 

3.修改配置,注冊到Eureka Server。

1
2
3
4
5
6
7
8
9
10
11
server:
   port:  8765
 
spring:
   application:
     name: eureka-producer
 
eureka:
   client:
     service-url:
       defaultZone: http: //localhost:8761/eureka # 指定服務注冊中心

  

4.啟動應用,刷新Eureka控制台,可以看到服務已經注冊到Eureka上

 

5.如果啟動有問題,檢查是否缺少Spring Boot web的依賴包,可以嘗試添加如下配置:

1
2
3
4
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

  

四、創建 Eureka Consumer 服務消費者

1.通過 Spring Initializr,創建一個 Eureka Discovery Client 模塊,同時要勾選加入Spring Web依賴。

 

2.修改原有配置,指定服務注冊中心,這里還是使用yml文件。

1
2
3
4
5
6
7
8
9
10
11
server:
   port:  8763
 
spring:
   application:
     name: eureka-consumer
 
eureka:
   client:
     service-url:
       defaultZone: http: //localhost:8761/eureka # 指定服務注冊中心

  

2.在啟動類中添加@EnableDiscoveryClient表明標注類是消費者,加入restTemplate來消費相關的服務。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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 ,通過引導,在腳手架中創建自己的項目,導入到開發工具中,感興趣的同學可以去試下。

 

作者: 邴越
掃碼關注公眾號:架構進化論,獲得第一手的技術資訊和原創文章
如果文章對您有幫助,可以點擊文章右下角【推薦】一下,您的鼓勵是作者堅持原創和持續寫作的最大動力!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM