分佈式配置中心(spring cloud config)使用數據庫的方式配置

spring cloud config搭建 藉助sts(spring官方版eclipse)

第一步:創建項目

1.

2.

3.

經過上述操作生成了項目

第二步:引入必要的pom文件

 附上pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.whty</groupId>
	<artifactId>spring_config</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>demo</name>
	<description></description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.RC1</spring-cloud.version>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.0</version>
		</dependency>

		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.1.3</version>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>


</project>

 

第三步:編寫配置文件

需要做的

(1)設置端口

(2)設置服務名

(3)讀取配置信息方式:native使用本地屬性文件,jdbc從數據庫中讀取

(4)配置數據源

(5)配置查詢配置信息的sql

附上配置文件

#配置工程啓動端口
server.port=8000

spring.application.name=config-center


#讀取配置信息方式:native使用本地屬性文件,jdbc從數據庫中讀取
spring.profiles.active = jdbc
#屬性文件應用場景標識,配置文件命名是有規則的,規則爲應用場景的${spring.application.name}-${spring.cloud.config.profile}.properties
#spring.cloud.config.profile=configInfo
#屬性文件地址,只要指定文件夾的路徑,在工程中格式舉例爲classpath:/properties,配置文件在本地但不在工程中格式舉例爲:E:/properties
#spring.cloud.config.server.native.searchLocations=classpath:/properties
spring.cloud.config.server.jdbc=true
spring.cloud.config.server.jdbc.sql=SELECT key_info, value_info from cc_config_info where (application_name=? or application_name='GLOBAL') and profile=? and label=?

#####數據庫配置信息#####
spring.datasource.name: hx_config
spring.datasource.url: jdbc:mysql://10.5.200.151:3306/hx_config?useUnicode=true&characterEncoding=utf8&autoReconnect=true
spring.datasource.username: examkw
spring.datasource.password: exama1r1
spring.datasource.driver-class-name: com.mysql.jdbc.Driver

# 使用druid數據源
spring.datasource.type: com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters: stat,slf4j
spring.datasource.maxActive: 20
spring.datasource.initialSize: 1
spring.datasource.maxWait: 60000
spring.datasource.minIdle: 1
spring.datasource.timeBetweenEvictionRunsMillis: 60000
spring.datasource.minEvictableIdleTimeMillis: 300000
spring.datasource.validationQuery: select 'x'
spring.datasource.testWhileIdle: true
spring.datasource.testOnBorrow: false
spring.datasource.testOnReturn: false
spring.datasource.poolPreparedStatements: true
spring.datasource.maxPoolPreparedStatementPerConnectionSize: 20
spring.datasource.maxOpenPreparedStatements: 20

#==================mybaties Config Start==================
#ORM Bean Package
mybatis.mapper-locations=classpath:mybatis/*.xml
mybatis.type-aliases-package: com.whty.hxx.config.web.model

mapper.mappers:  com.whty.hxx.config.web.mapper
mapper.not-empty: false
mapper.identity: MYSQL

#pagehelper
pagehelper.helperDialect: mysql
pagehelper.reasonable: true
pagehelper.supportMethodsArguments: true
pagehelper.params: count=countSql
pagehelper.returnPageInfo: check
#打印mybatiesSql語句
logging.level.com.whty.hxx.config.web.mapper=DEBUG

 數據庫表結構

CREATE TABLE `cc_config_info` (
  `config_info_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
  `key_info` varchar(100) DEFAULT NULL COMMENT '屬性名',
  `value_info` varchar(255) DEFAULT NULL COMMENT '屬性值',
  `application_name` varchar(100) DEFAULT NULL COMMENT '應用名,GLOBAL爲全局',
  `label` varchar(20) DEFAULT 'master' COMMENT '配置標識',
  `profile` varchar(20) DEFAULT 'configInfo',
  `remark` varchar(255) DEFAULT NULL COMMENT '備註',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '創建時間',
  PRIMARY KEY (`config_info_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1055 DEFAULT CHARSET=utf8 COMMENT='配置信息';

啓動

啓動測試項目

 

啓動成功

讀取到了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章