spring cloud congif 基于db的配置中心【(spring cloud congif + mysql)jpa调用】

本文详细介绍了如何在Spring Cloud项目中使用数据库作为配置中心,替代常见的Git存储方式。通过具体步骤,包括环境搭建、依赖配置、属性设置、主启动类编写及MySQL表结构创建,展示了基于数据库的配置中心实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java程序员都很会遇到这样的烦恼,工作中在配置spring cloud congif 配置中心的时候,项目要求或者经理要求不使用git存储,而是使用db存储,下面是我自己写的一个基于db的配置中心,此配置中没有集成eureka,有需要的小伙伴自己添加一下就好。

1.配置

Idea+SpringCloud+Mysql

2.pom依赖

<?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.didispace</groupId>
	<artifactId>config-server-db</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>

	<name>config-server-db</name>
	<description>Spring Cloud In Action</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.6.RELEASE</version>
		<relativePath/>
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.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-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.21</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>Finchley.RELEASE</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>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<useSystemClassLoader>false</useSystemClassLoader>
					<testFailureIgnore>false</testFailureIgnore>
				</configuration>
			</plugin>
		</plugins>


	</build>

</project>

pom中需要注意版本的问题,尽量使用一样的版本,否则会出现异常。

3.application.properties配置

spring.application.name=config-server-db
server.port=10020

spring.profiles.active=jdbc
#KEY和VALUE 都是mysql的保留字段,所以这里重写了这个sql
spring.cloud.config.server.jdbc.sql=SELECT `KEY`, `VALUE` from properties where APPLICATION=? and PROFILE=? and LABEL=?
#db的配置
spring.datasource.url=jdbc:mysql://192.162.31.181:3306/aobo_config?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=****#此处配置到自己的数据库连接就好了
spring.datasource.password=****
spring.datasource.driver-class-name=com.mysql.jdbc.Driver






# ============ JPA Configuration:  ============
#spring.jpa.database=MYSQL
## Show or not log for each sql query
#spring.jpa.show-sql=true
#spring.jpa.generate-ddl=true
## Hibernate ddl auto (create, create-drop, update)
#spring.jpa.hibernate.ddl-auto=update
##spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
#spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
##spring.jpa.database=org.hibernate.dialect.MySQL5InnoDBDialect
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

4.主启动类

package com.didispace.config.server.db;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.context.ApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

@EnableConfigServer
@SpringBootApplication
public class ConfigServerBootstrap {

    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(ConfigServerBootstrap.class);


}

5.mysql数据表

CREATE TABLE `properties` (
  `id` varchar(32) NOT NULL,
  `key` varchar(50) DEFAULT NULL,
  `value` varchar(200) DEFAULT NULL,
  `application` varchar(20) DEFAULT NULL,
  `profile` varchar(10) DEFAULT NULL,
  `label` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建完可以自行添加一些测试数据,以便后期访问使用。

6.调用

上述配置完成后,只需要在你自己的项目中创建一个bootstrap.properties文件,添加如下配置

#端口号
spring.cloud.config.uri=config-center:10020
#profile
spring.cloud.config.profile=pro
#label
spring.cloud.config.label=master

配置完成后,先启动配置中心,在启动自己的项目。

大功告成!

最后附上源码,希望大家不喜勿喷谢谢!

https://github.com/shuzhen123/config-server-db

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值