最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Cloud之配置中心的搭建

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

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

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

它的具體結構如下:

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

Spring Cloud是建立在Spring Boot基礎上的,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>

這里我們需要仔細看一下官方文檔,Spring Cloud的Finchley版本是基于Spring Boot2.0的,在Spring Boot1.5下是不能工作的。而Edgware版本是基于1.5的,在2.0下不能正常工作。這點大家要注意,以免出現(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
@EnableConfigServer
public class ConfigServerApplication {
  public static void main(String[] args) {
    SpringApplication.run(ConfigServerApplication.class, args);
  }
}

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

#服務端口
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

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

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

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

其中:

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

客戶端調(diào)用

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

spring.application.name=eg-config

我們應用叫作“eg-config”,項目啟動時會從配置中心加載eg-config的文件。接下來我們做個例子,創(chuàng)建一個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會從配置中心加載屬性my.name。啟動類如下:

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

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

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

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

相關文章

  • java正則表達式匹配規(guī)則超詳細總結

    java正則表達式匹配規(guī)則超詳細總結

    正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別,下面這篇文章主要給大家介紹了關于java正則表達式匹配規(guī)則的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • SpringBoot下實現(xiàn)session保持方式

    SpringBoot下實現(xiàn)session保持方式

    這篇文章主要介紹了SpringBoot下實現(xiàn)session保持方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java實現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結)

    java實現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結)

    下面小編就為大家?guī)硪黄猨ava實現(xiàn)二叉樹的創(chuàng)建及5種遍歷方法(總結)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 全面解析@InsertProvider執(zhí)行原理

    全面解析@InsertProvider執(zhí)行原理

    這篇文章主要介紹了全面解析@InsertProvider執(zhí)行原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 淺談SpringMVC HandlerInterceptor詭異問題排查

    淺談SpringMVC HandlerInterceptor詭異問題排查

    這篇文章主要介紹了淺談SpringMVC HandlerInterceptor詭異問題排查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Java適配器模式應用之電源適配器功能詳解

    Java適配器模式應用之電源適配器功能詳解

    這篇文章主要介紹了Java適配器模式應用之電源適配器功能,較為詳細的分析了適配器模式的概念、原理及Java基于適配器模式實現(xiàn)電源適配器功能的相關操作技巧與注意事項,需要的朋友可以參考下
    2018-05-05
  • Java實現(xiàn)拓撲排序算法的示例代碼

    Java實現(xiàn)拓撲排序算法的示例代碼

    在圖論中,拓撲排序(Topological Sorting)是一個有向無環(huán)圖(DAG, Directed Acyclic Graph)的所有頂點的線性序列。本文將為大家講講拓撲排序算法的原理及實現(xiàn),需要的可以參考一下
    2022-07-07
  • Maven學習----Maven安裝與環(huán)境變量配置教程

    Maven學習----Maven安裝與環(huán)境變量配置教程

    這篇文章主要給大家介紹了關于如何利用Maven入手Spring Boot第一個程序的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • Java實現(xiàn)簡單文件過濾器功能

    Java實現(xiàn)簡單文件過濾器功能

    下面小編就為大家分享一篇Java實現(xiàn)簡單文件過濾器功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Java的Junit測試框架中的其他注解說明

    Java的Junit測試框架中的其他注解說明

    這篇文章主要介紹了Java的Junit測試框架中的其他注解說明,JUnit是一個開源的java單元測試框架,它是XUnit測試體系架架構的一種體現(xiàn),
    是Java語言事實上的標準單元測試庫,需要的朋友可以參考下
    2023-10-10

最新評論

台北市| 南溪县| 镇江市| 彰武县| 澎湖县| 印江| 安宁市| 体育| 和政县| 广昌县| 井冈山市| 蓝田县| 兴仁县| 吴江市| 徐汇区| 漳平市| 江都市| 吉林省| 宜丰县| 云霄县| 义乌市| 淮滨县| 乐至县| 三穗县| 尚志市| 肇源县| 无锡市| 百色市| 东台市| 仪陇县| 平罗县| 公安县| 黄大仙区| 沭阳县| 平原县| 铁力市| 临沂市| 胶南市| 南阳市| 丰镇市| 陈巴尔虎旗|