分布式配置中心(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='配置信息';

启动

启动测试项目

 

启动成功

读取到了


版权声明:本文为hzau_itdog原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。