国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

Spring Cloud之配置中心的搭建

2024-07-14 08:41:26
字體:
供稿:網(wǎng)友

Spring Cloud是現(xiàn)在流行的分布式服務(wù)框架,它提供了很多有用的組件。比如:配置中心、Eureka服務(wù)發(fā)現(xiàn)、消息總線、熔斷機(jī)制等。

配置中心在Spring Cloud的眾多組件中是比較基礎(chǔ)的,它提供了配置文件的統(tǒng)一管理,可以很輕松的切換不通的環(huán)境。

它的具體結(jié)構(gòu)如下:

  1. 存儲配置文件的文件系統(tǒng)(通常使用git)
  2. 配置中心服務(wù)端(從文件系統(tǒng)獲取最新的配置文件,為客戶端提供配置信息)
  3. 配置客戶端(從配置中心獲取配置信息)

Spring Cloud是建立在Spring Boot基礎(chǔ)上的,Spring Cloud離不開Spring Boot,所以我們的項目都是基于Spring Boot的。

配置文件一般我們放在git上,也好做版本控制。接下來我們講一下配置中心的搭建。

配置中心搭建

首先,引入Spring Boot和Spring Cloud的依賴BOM:

<dependencyManagement>  <dependencies>    <dependency>      <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-dependencies</artifactId>      <version>Edgware.SR3</version>      <type>pom</type>      <scope>import</scope>    </dependency>    <dependency>      <!-- Import dependency management from Spring Boot -->      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-dependencies</artifactId>      <version>1.5.9.RELEASE</version>      <type>pom</type>      <scope>import</scope>    </dependency>  </dependencies></dependencyManagement>

這里我們需要仔細(xì)看一下官方文檔,Spring Cloud的Finchley版本是基于Spring Boot2.0的,在Spring Boot1.5下是不能工作的。而Edgware版本是基于1.5的,在2.0下不能正常工作。這點(diǎn)大家要注意,以免出現(xiàn)不必要的麻煩。

這里我們采用Spring Cloud 的Edgware和Spring Boot的1.5版本。

然后倒入必須的依賴,如下:

<dependencies>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-config-server</artifactId>  </dependency></dependencies>

最后編寫配置中心的啟動類,如下:

@SpringBootApplication@EnableConfigServerpublic class ConfigServerApplication {  public static void main(String[] args) {    SpringApplication.run(ConfigServerApplication.class, args);  }}

@EnableConfigServer標(biāo)志著這個服務(wù)是一個配置中心服務(wù),具體的信息在application.properties文件中配置:

#服務(wù)端口server.port=9000#配置文件的git地址spring.cloud.config.server.git.uri=https://github.com/liubo-tech/spring-cloud-properties#配置文件的臨時文件目錄spring.cloud.config.server.git.basedir=/d:/config-repo

服務(wù)端口和git地址大家都比較明白,第三個是配置臨時文件的目錄。在配置中心被調(diào)用后,配置中心會從git上拉取配置文件,并在本地緩存,這個就是配置緩存的目錄,也可以不配置,使用系統(tǒng)默認(rèn)的。這樣配置中心就搭好了,也可以通過Nginx搭建集群做的高可用。

訪問配置文件格式的如下:

/{application}/{profile}[/{label}]/{application}-{profile}.yml/{label}/{application}-{profile}.yml/{application}-{profile}.properties/{label}/{application}-{profile}.properties

其中:

  1. {application}對應(yīng)客戶端的應(yīng)用名稱(spring.application.name)
  2. {profile}對應(yīng)客戶端的spring.profiles.active
  3. {label}是可選的git標(biāo)簽(默認(rèn)為“master”)。

客戶端調(diào)用

以前配置文件都是放在項目中,這使得我們在切換不同環(huán)境時非常麻煩,一些配置的敏感信息也對開發(fā)人員暴露了。
使用統(tǒng)一的配置中心就可以避免這些,讓我們看一看客戶端是如何調(diào)用的。

首先,導(dǎo)入必須依賴的jar包,如下:

<dependencies>  <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-config</artifactId>  </dependency></dependencies>

只要Spring Cloud Config Client的jar在項目的classpath下,它就會在項目啟動時從配置中心獲取配置,通過bootstrap配置文件中的spring.cloud.config.uri屬性指定配置中心。

這使得客戶端的項目必須有一個bootstrap.yml或者bootstrap.properties文件,否則客戶端是不會從配置中心加載配置文件的。

我們創(chuàng)建bootstrap.properties,如下:

#配置中心地址spring.cloud.config.uri=http://localhost:9000

指定配置中心的地址,上面的例子中,配置中心的端口我們指定9000。我們在application.properties文件中配置應(yīng)用的名稱:

spring.application.name=eg-config

我們應(yīng)用叫作“eg-config”,項目啟動時會從配置中心加載eg-config的文件。接下來我們做個例子,創(chuàng)建一個Bean,并從配置中心注入值

@Componentpublic class MyBean {  @Value("${my.name}")  private String name;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }}

其中,name會從配置中心加載屬性my.name。啟動類如下:

@SpringBootApplicationpublic class Application {  public static void main(String[] args) {    ConfigurableApplicationContext applicationContext = SpringApplication.run(Application.class, args);    //獲取bean并打印name字段    MyBean bean = applicationContext.getBean(MyBean.class);    System.out.println(bean.getName());  }}

啟動后,控制臺打印的結(jié)果如下:test

這樣配置中心就介紹完了,具體請參考項目示例:https://github.com/liubo-tech/spring-cloud-config。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 孟村| 咸阳市| 鹿邑县| 扶绥县| 寿阳县| 库尔勒市| 高要市| 鄂温| 鞍山市| 南京市| 铜梁县| 尚义县| 金溪县| 于田县| 龙海市| 丹阳市| 蛟河市| 镇康县| 广汉市| 若尔盖县| 治多县| 井研县| 阿图什市| 元谋县| 郯城县| 界首市| 南召县| 手游| 威远县| 叙永县| 东安县| 麦盖提县| 舟曲县| 顺平县| 东港市| 新乐市| 惠来县| 克东县| 永川市| 钦州市| 佛坪县|