一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解SpringCloud mysql實現配置中心

詳解SpringCloud mysql實現配置中心

2021-05-31 11:40雨點的名字 Java教程

這篇文章主要介紹了詳解SpringCloud mysql實現配置中心,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

mysql實現配置中心

本公司配置數據的管理是通過mysql進行配置管理,因為已經搭建好了,所以自己動手重新搭建一遍,熟悉整個流程。有關項目源碼后期會補上github地址

微服務要實現集中管理微服務配置、 不同環境不同配置 、 運行期間也可動態調整 、 配置修改后可以自動更新的需求 ,spring cloud config同時滿足了以上要求。

一、項目搭建

本次主要用三個微服務

(1)eureka-server: 7001 注冊中心

(2)config-server : 5001 配置中心

(3)product-server : 8001 商品微服務

詳解SpringCloud mysql實現配置中心

1、eureka-server注冊中心

注冊中心很簡單,這里不在重復些,注冊中心沒有變化。可以看之前寫的博客 : springcloud(3)---eureka服務注冊與發現

2、配置中心微服務

 1、pom.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!--服務中心jar包-->
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
</dependency>
 
<!--配置中心jar包-->
<dependency>
<groupid>org.springframework.cloud</groupid>
<artifactid>spring-cloud-config-server</artifactid>
</dependency>
 
<!--連接msql數據庫相關jar包-->
<dependency>
<groupid>org.springframework.boot</groupid>
<artifactid>spring-boot-starter-jdbc</artifactid>
</dependency>
<dependency>
<groupid>mysql</groupid>
<artifactid>mysql-connector-java</artifactid>
<version>5.1.21</version>
</dependency>

2、application.yml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#服務名稱
 server:
  port: 5001
 
#連接配置信息
 spring:
  application:
   name: config-server-jdbc
  profiles:
   active: jdbc
  cloud:
   config:
    server:
     default-label: dev
     jdbc:
      sql: select akey , avalue from config_server where application=? and aprofile=? and label=?
 #####################################################################################################
 # mysql 屬性配置
  datasource:
   driver-class-name: com.mysql.jdbc.driver
   url: jdbc:mysql://127.0.0.1:3306/test
   username: root
   password: root
 #####################################################################################################
 
#指定注冊中心地址
 eureka:
  client:
   serviceurl:
    defaultzone: http://localhost:7001/eureka/

這里主要講下連接配置信息

(1) spring.profiles.active=jdbc ,自動實現jdbcenvironmentrepository。

(2)sql語句自定義,否則會默認為“select key, value from properties where application=? and profile=? and label=?”,具體可以參考 jdbcenvironmentrepository 實現。

(3)本人數據庫建表為config_server,由于key,value和profile是mysql關鍵字,所以我都在最前面加了a。當然表名字段名都可以自定義。

(4) {application} 對應客戶端的"spring.application.name"屬性;

{aprofile} 對應客戶端的 "spring.profiles.active"屬性(逗號分隔的列表); 和

{label} 對應服務端屬性,這個屬性能標示一組配置文件的版本.

(5)只要 select出來是兩個字段 ,框架會 自動包裝到environment的map<key,value> 。

 3、mysql數據

詳解SpringCloud mysql實現配置中心

4、springboot啟動類

添加 @enableconfigserver 注解

?
1
2
3
4
5
6
7
8
@springbootapplication
@enableconfigserver
public class configserverapplication {
 
public static void main(string[] args) {
springapplication.run(configserverapplication.class, args);
  }
}

3、product-service微服務

1、pom.xml

?
1
2
3
4
5
6
7
8
9
10
<!--服務中心jar-->
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
    </dependency>
    
    <!--配置中心客戶端jar-->
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-config-client</artifactid>

2、bootstrap.yml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#指定注冊中心地址
eureka:
 client:
  serviceurl:
   defaultzone: http://localhost:7001/eureka/
 
#服務的名稱
spring:
 application:
  name: product-service
 #指定從哪個配置中心讀取
 cloud:
  config:
   discovery:
    service-id: config-server-jdbc
    enabled: true
   profile: dev
   label: dev
 
server:
 port: 8001

這里為什么用bootstrap.yml而不用application.yml,是因為若application.yml 和bootstrap.yml 在同一目錄下,

則 bootstrap.yml 的加載順序要高于application.yml ,即bootstrap.yml 會優先被加載。

為何需要把 config server 的信息放在 bootstrap.yml 里?

當使用 spring cloud 的時候,配置信息一般是從 config server 加載的,為了取得配置信息(比如密碼等),你需要一些提早的或引導配置。

因此,把 config server 信息放在 bootstrap.yml,用來加載真正需要的配置信息。

3、configcontroller類(測試用)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@restcontroller
@requestmapping("/api/v1/product")
public class configcontroller {
 
  @value("${item_url}")
  private string url;
 
  /**
   * 輸出url
   */
  @requestmapping("url")
  public void list(){
 
    system.out.println(url);
  }

4、測試

通過訪問:http://localhost:8001/api/v1/product/url 進入斷點。

詳解SpringCloud mysql實現配置中心

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/qdhxhz/p/9624386.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产专区视频在线观看 | 色男人网 | 亚洲精品日韩专区在线观看 | 美女机巴 | 九九精品视频一区二区三区 | 操黄| 青草午夜精品视频在线观看 | 亚洲剧情在线 | 精品视频在线观看免费 | eeuss免费快捷 | 深夜国产在线 | 高清在线观看免费入口 | 国产精品视频一区二区三区 | 日本免费观看95视频网站 | 三叶草私人研究所 | 精品乱lun小说 | 学生小泬无遮挡女HD | 2021国产精品视频一区 | 福利视频久久 | 日韩欧美一区二区三区中文精品 | 国产欧美日韩高清专区ho | 王晶三级作品 | 亚洲精品高清中文字幕完整版 | 大ji吧快给我别停受不了视频 | 小早川怜子亚洲综合中文字幕 | 天美麻豆| 国产成人啪精品午夜在线播放 | 91av爱爱 | 精品国产品国语在线不卡丶 | 午夜黄视频 | 亚洲免费在线观看视频 | 精品久久成人免费第三区 | 婷婷色伊人 | 国产精品调教 | 操熟美女又肥又嫩的骚屁股 | 国产精品久久久久久久久齐齐 | 婷婷激情综合五月天 | 亚洲黄色色图 | 好大好爽好硬我要喷水了 | 亚洲小视频在线 | 2021年国内自拍 |