亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring Cloud之配置中心的搭建

 更新時(shí)間:2018年07月04日 09:45:40   作者:Java同學(xué)會(huì)  
這篇文章主要介紹了Spring Cloud之配置中心的搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

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

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

Spring Cloud是建立在Spring Boot基礎(chǔ)上的,Spring Cloud離不開Spring Boot,所以我們的項(xiàng)目都是基于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>

最后編寫配置中心的啟動(dòng)類,如下:

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

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

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

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

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

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

其中:

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

客戶端調(diào)用

以前配置文件都是放在項(xiàng)目中,這使得我們在切換不同環(huán)境時(shí)非常麻煩,一些配置的敏感信息也對(duì)開發(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在項(xiàng)目的classpath下,它就會(huì)在項(xiàng)目啟動(dòng)時(shí)從配置中心獲取配置,通過bootstrap配置文件中的spring.cloud.config.uri屬性指定配置中心。

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

我們創(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”,項(xiàng)目啟動(dòng)時(shí)會(huì)從配置中心加載eg-config的文件。接下來我們做個(gè)例子,創(chuàng)建一個(gè)Bean,并從配置中心注入值

@Component
public class MyBean {
  @Value("${my.name}")
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

其中,name會(huì)從配置中心加載屬性my.name。啟動(dòng)類如下:

@SpringBootApplication
public 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());
  }
}

啟動(dòng)后,控制臺(tái)打印的結(jié)果如下:test

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于selenium 獲取新頁面元素失敗的解決方法

    基于selenium 獲取新頁面元素失敗的解決方法

    今天小編就為大家分享一篇基于selenium 獲取新頁面元素失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 通過實(shí)例解析Java類初始化和實(shí)例初始化

    通過實(shí)例解析Java類初始化和實(shí)例初始化

    這篇文章主要介紹了通過實(shí)例解析Java類初始化和實(shí)例初始化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 詳解如何用Java去除HTML標(biāo)簽

    詳解如何用Java去除HTML標(biāo)簽

    在平時(shí)工作中,偶爾會(huì)用 Java 做一些解析HTML的工作。有時(shí)需要?jiǎng)h除所有的HTML標(biāo)簽,只保留純文字內(nèi)容。這個(gè)問題在做過一些爬蟲工作的朋友來說很簡單。下面來說說,我們平時(shí)使用到的集中解析的方法
    2022-12-12
  • java調(diào)用oracle分頁存儲(chǔ)過程示例

    java調(diào)用oracle分頁存儲(chǔ)過程示例

    這篇文章主要介紹了java調(diào)用oracle分頁存儲(chǔ)過程,需要的朋友可以參考下
    2014-03-03
  • Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題

    Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題

    這篇文章主要介紹了Springboot項(xiàng)目如何兼容老的Spring項(xiàng)目問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java中的回調(diào)

    Java中的回調(diào)

    這篇文章主要介紹了Java中回調(diào)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)java,感興趣的朋友可以了解下
    2020-08-08
  • springboot 如何通過SpringTemplateEngine渲染html

    springboot 如何通過SpringTemplateEngine渲染html

    通過Spring的Thymeleaf模板引擎可以實(shí)現(xiàn)將模板渲染為HTML字符串,而不是直接輸出到瀏覽器,這樣可以對(duì)渲染后的字符串進(jìn)行其他操作,如保存到文件或進(jìn)一步處理,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Gauva使用ListenableFuture介紹說明

    Gauva使用ListenableFuture介紹說明

    并發(fā)是一個(gè)困難問題,但是通過強(qiáng)大和強(qiáng)大的抽象能夠顯著的簡化工作。為了簡化問題,Gauva使用ListenableFuture擴(kuò)展了JDK的Future接口,這篇文章主要介紹了Gauva使用ListenableFuture
    2023-01-01
  • SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例

    SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例

    這篇文章主要介紹了SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 實(shí)例講解JAVA 適配器模式

    實(shí)例講解JAVA 適配器模式

    這篇文章主要介紹了JAVA 適配器模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評(píng)論