Java高级教程之SpringCloud-12:SpringCloud Config使用git配置中心

SpringCloud使用Config组件实现分布式的配置,不同的环境配置可以从远程或本地的Git/SVN代码管理库拉取,然后更新到相应的环境。比如数据库连接的配置,生产环境和开发环境肯定是分开的不同数据库,只需要在Git里存放这两个环境的配置文件,就可以让微服务自动获取到相应的配置。

 

https://spring.io/projects/spring-cloud-config

https://cloud.spring.io/spring-cloud-config/reference/html/

 

首先可以把之前的工程都放到git上面。这里使用阿里云的git,新建项目spring-cloud-demo,权限设置为公开。

https://code.aliyun.com

 

git clone https://code.aliyun.com/cheeringhou/spring-cloud-demo.git

git pull

git add *

git commit

git push

 

 

现在就可以看到工程已经传到git上面。

 

新建一个Maven工程,并加入SpringCloud和SpringBoot依赖。

 

 

在pom.xml中加入spring-cloud-config-server的依赖。

Java高级教程之SpringCloud-12:SpringCloud Config使用git配置中心

 

新建ApplicaionMain作为主入口类,并加入@EnableConfigServer注解。

 

package com.lpplpp.config.app;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class ApplicationMain {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationMain.class, args);
        System.out.println("config microservice is running");
    }
}

 

接着,加入application.yml,设置微服务端口为8888。在git项目spring-cloud-demo主干master中新建一个文件夹,命名为microserviceconfig,里面会存放配置文件。

Java高级教程之SpringCloud-12:SpringCloud Config使用git配置中心

 

在文件夹microserviceconfig中新建jdbc-dev.properties,内容为开发数据库配置。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/dev?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

再新建jdbc-prod.properties,内容为生产环境数据库配置。这两个文件都要上传到git上面的microserviceconfig目录里面。

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/prod?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

 

启动这个微服务ApplicationMain,访问http://localhost:8888/jdbc-dev.properties可以得到相应的配置信息。

访问结果:

 

jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.password: 123456
jdbc.url: jdbc:mysql://127.0.0.1:3306/dev?useUnicode=true&characterEncoding=utf8
jdbc.username: root

 

同样,访问生产环境配置文件http://localhost:8888/jdbc-prod.properties可以得到生产环境的配置信息。

 

 

访问结果:

jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.password: 123456
jdbc.url: jdbc:mysql://127.0.0.1:3306/prod?useUnicode=true&characterEncoding=utf8
jdbc.username: root