真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springcloudconfig將配置存儲在數(shù)據(jù)庫中

Spring Cloud Config Server最常見是將配置文件放在本地或者遠程Git倉庫,放在本地是將將所有的配置文件統(tǒng)一寫在Config Server工程目錄下,如果需要修改配置,需要重啟config server;放在Git倉庫,是將配置統(tǒng)一放在Git倉庫,可以利用Git倉庫的版本控制。本文將介紹使用另外一種方式存放配置信息,即將配置存放在MySQL中。

創(chuàng)新互聯(lián)建站服務項目包括長垣網(wǎng)站建設、長垣網(wǎng)站制作、長垣網(wǎng)頁制作以及長垣網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,長垣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到長垣省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

整個流程:Config Sever暴露Http API接口,Config Client 通過調(diào)用Config Sever的Http API接口來讀取配置Config Server的配置信息,Config Server從數(shù)據(jù)中讀取具體的應用的配置。流程圖如下:

spring cloud config將配置存儲在數(shù)據(jù)庫中

案例實戰(zhàn)

在本案例中需要由2個工程,分為config-server和config-client,其中config-server工程需要連接Mysql數(shù)據(jù)庫,讀取配置;config-client則在啟動的時候從config-server工程讀取。本案例Spring Cloud版本為Greenwich.RELEASE,Spring Boot版本為2.1.0.RELEASE。

? ? ? ?工程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 描述

config-server ? ? ? ? 端口8769,從數(shù)據(jù)庫中讀取配置

config-client ? ? ? ? 端口8083,從config-server讀取配置

搭建config-server工程

創(chuàng)建工程config-server,在工程的pom文件引入config-server的起步依賴,mysql的連接器,jdbc的起步依賴,代碼如下:

org.springframework.cloud

spring-cloud-config-server

mysql

mysql-connector-java

org.springframework.boot

spring-boot-starter-jdbc

在工程的配置文件application.yml下做以下的配置:

spring:

? profiles:

? ? ?active: jdbc

? application:

? ? ?name: config-jdbc-server

? datasource:

? ? ?url: jdbc:mysql://127.0.0.1:3306/config-jdbc?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&serverTimezone=GMT%2B8

? ? ?username: root

? ? ?password: 123456

? ? ?driver-class-name: com.mysql.jdbc.Driver

? cloud:

? ? ?config:

? ? ? ?label: master

? ? ? ?server:

? ? ? ? ?jdbc: true

server:

? port: 8769

spring.cloud.config.server.jdbc.sql: SELECT key1, value1 from config_properties where APPLICATION=? and PROFILE=? and LABEL=?

其中,spring.profiles.active為spring讀取的配置文件名,從數(shù)據(jù)庫中讀取,必須為jdbc。spring.datasource配置了數(shù)據(jù)庫相關的信息,spring.cloud.config.label讀取的配置的分支,這個需要在數(shù)據(jù)庫中數(shù)據(jù)對應。spring.cloud.config.server.jdbc.sql為查詢數(shù)據(jù)庫的sql語句,該語句的字段必須與數(shù)據(jù)庫的表字段一致。

在程序的啟動文件ConfigServerApplication加上@EnableConfigServer注解,開啟ConfigServer的功能,代碼如下:

@SpringBootApplication

@EnableConfigServer

public class ConfigServerApplication {

public static void main(String[] args) {

SpringApplication.run(ConfigServerApplication.class, args);

}

}

初始化數(shù)據(jù)庫

由于Config-server需要從數(shù)據(jù)庫中讀取,所以讀者需要先安裝MySQL數(shù)據(jù)庫,安裝成功后,創(chuàng)建config-jdbc數(shù)據(jù)庫,數(shù)據(jù)庫編碼為utf-8,然后在config-jdbc數(shù)據(jù)庫下,執(zhí)行以下的數(shù)據(jù)庫腳本:

CREATE TABLE `config_properties` (

? `id` bigint(20) NOT NULL AUTO_INCREMENT,

? `key1` varchar(50) COLLATE utf8_bin NOT NULL,

? `value1` varchar(500) COLLATE utf8_bin DEFAULT NULL,

? `application` varchar(50) COLLATE utf8_bin NOT NULL,

? `profile` varchar(50) COLLATE utf8_bin NOT NULL,

? `label` varchar(50) COLLATE utf8_bin DEFAULT NULL,

? PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

其中key1字段為配置的key,value1字段為配置的值,application字段對應于應用名,profile對應于環(huán)境,label對應于讀取的分支,一般為master。

插入數(shù)據(jù)config-client 的2條數(shù)據(jù),包括server.port和foo兩個配置,具體數(shù)據(jù)庫腳本如下:

insert into `config_properties` (`id`, `key1`, `value1`, `application`, `profile`, `label`) values('1','server.port','8083','config-client','dev','master');

insert into `config_properties` (`id`, `key1`, `value1`, `application`, `profile`, `label`) values('2','foo','bar-jdbc','config-client','dev','master');

搭建config-client

在 config-client工程的pom文件,引入web和config的起步依賴,代碼如下:

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-config

在程序的啟動配置文件 bootstrap.yml做程序的相關配置,一定要是bootstrap.yml,不可以是application.yml,bootstrap.yml的讀取優(yōu)先級更高,配置如下:

spring:

? application:

? ? name: config-client

? cloud:

? ? config:

? ? ? uri: http://localhost:8769

? ? ? fail-fast: true

? profiles:

? ? active: dev

其中spring.cloud.config.uri配置的config-server的地址,spring.cloud.config.fail-fast配置的是讀取配置失敗后,執(zhí)行快速失敗。spring.profiles.active配置的是spring讀取配置文件的環(huán)境。

在程序的啟動文件ConfigClientApplication,寫一個RestAPI,讀取配置文件的foo配置,返回給瀏覽器,代碼如下:

@SpringBootApplication

@RestController

public class ConfigClientApplication {

public static void main(String[] args) {

SpringApplication.run(ConfigClientApplication.class, args);

}

@Value("${foo}")

String foo;

@RequestMapping(value = "/foo")

public String hi(){

return foo;

}

}

依次啟動2個工程,其中config-client的啟動端口為8083,這個是在數(shù)據(jù)庫中的,可見config-client從 config-server中讀取了配置。在瀏覽器上訪問http://localhost:8083/foo,瀏覽器顯示bar-jdbc,這個是在數(shù)據(jù)庫中的,可見config-client從 config-server中讀取了配置。


網(wǎng)頁題目:springcloudconfig將配置存儲在數(shù)據(jù)庫中
網(wǎng)頁鏈接:http://weahome.cn/article/jioejj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部