Spring Cloud Config分布式配置服务由服务器端和客户端共同组成,服务端提供配置信息的存储管理,对配置进行统一的管理,客户端读取配置信息
为了能统一的管理配置文件,我们需要先把配置文件提交到git上去(也可以用svn),首先创建如下3个配置文件
三个文件里面的内容分别是:
driverClassName=
user=root
password=123
url=jdbc:mysql:///db_user_dev
driverClassName=
user=root
password=123
url=jdbc:mysql:///db_user_test
driverClassName=
user=root
password=123
url=jdbc:mysql:///db_user_production
然后,commit, 并且push到git仓库master分支 http://192.168.1.145/demo/ (需要提前创建一个project)
服务端示例代码:
<dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>spring-cloud-config</artifactId>
<version>1.1.</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
package ;
import ;
import ;
import ;
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
public static void main( String[] args ) {
(, args);
}
}
配置
=9955
=http://192.168.1.145/demo/
然后,启动应用
访问 http://127.0.0.1:9955/{application}/{profile}/{label},比如:
http://127.0.0.1:9955/jdbc/dev/master 可以拿到 master分支对应文件的值
http://127.0.0.1:9955/jdbc/dev/develop可以拿到 develop分支对应文件的值 (前提是要有这个分支)
http://127.0.0.1:9955/jdbc/test/master 可以拿到 master分支对应文件的值
http://127.0.0.1:9955/jdbc/production/master 可以拿到 master分支对应文件的值
{application} 匹配客户端的
{profile} 匹配客户端的
{label} 如果是git,则匹配的是分支,如果是svn匹配 trunk/branchs等.
客户端示例代码:
<dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>spring-cloud-config</artifactId>
<version>1.1.</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
</dependencies>
package ;
import ;
import ;
import ;
import ;
@SpringBootApplication
public class ConfigClient {
@Value("${driverClassName}")
private String driverClassName;
@Value("${user}")
private String user;
@Value("${password}")
private String password;
@Value("${url}")
private String url;
@PostConstruct
public void show() {
("driverClassName=" + driverClassName);
("user=" + user);
("password=" + password);
("url=" + url);
}
public static void main( String[] args ) {
(, args);
}
}
配置文件的内容
=9966
配置文件的内容
=jdbc
=test
=master
=http://127.0.0.1:9955
启动之后,就会发现show()方法已经输出了各个配置的值。