spring cloud config 用svn做配置文件仓库

来源:互联网 发布:淘宝发布宝贝视频 编辑:程序博客网 时间:2024/04/30 11:44

spring cloud config 用svn做配置文件仓库

spring cloud的配置文件中心分为服务端和客户端,下面是一个基于svn实现配置中心的例子:

一:服务端主要配置

1,创建一个spring boot项目,修改pom.xml,添加jar包依赖,代码如下:

<?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.qwrt.fire.config.server</groupId><artifactId>fire-config-server</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>fire-config-server</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.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></properties><dependencies><!--引入web包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--引入配置中心的包--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId><version>1.3.2.RELEASE</version></dependency><!--使用svn做配置文件的版本管理,需要多引入svnkitr包--><dependency><groupId>org.tmatesoft.svnkit</groupId><artifactId>svnkit</artifactId><version>1.9.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>


2,启动类添加注解

给启动类添加注解,代码如下:

package com.qwrt.fire.config.server;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.config.server.EnableConfigServer;@SpringBootApplication@EnableConfigServerpublic class FireConfigServerApplication {public static void main(String[] args) {SpringApplication.run(FireConfigServerApplication.class, args);}}


3,配置文件

修改application.yml,进行配置svn,代码如下:

server:  port: 9091  #应用程序端口spring:  application:    name: fire-config-server  #应用程序名  cloud:    config:      server:        svn:          uri: xxxxx #svn地址          username: xxxxx #svn用户名          password: xxxxx #svn密码        default-label: config-repo   #trunk,配置文件的目录  profiles:    active: subversion  #表示这是采用的svn进行的spring cloud的配置

    上面的uri是svn的一个路径,在svn的目录下创建一个文件夹,存放配置文件。


4,测试

启动spring boot的配置中心,输入http://localhost:9091/application/profile/label,进行访问


二:客户端

1,修改客户端的pom.xml

添加下面两个依赖:

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-actuator</artifactId>        </dependency>

<!--spring cloud配置中心-->        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-config</artifactId>        </dependency>


2,配置文件

需要配置两个配置文件,application.yml和bootstrap.yml。其中application.yml是客户端的个性化配置文件,bootstrap.yml是连接配置中心的配置,bootstrap.yml文件会在application.yml之前进行加载。

bootstrap.yml代码如下:

spring:  cloud:    config:      name: fire-sensor  #对应{application}部分      profile: dev  #对应{profile}部分      uri: http://localhost:9091/  #配置中心的具体地址      label: config-repo  #对应版本的分支。如果配置中心使用的是本地存储,则该参数无用

3,测试

可以写一个controller进行测试,此处略。。。。



        总结:上面是spring cloud基于svn的配置中心实现的一个简单的步骤,不太重要的地方就省略了,如果觉得太简单抽象了,下面推荐一些参考的博客,有详细的实现说明,可以进行参考,还有对配置文件更新不需要重启项目加载配置文件的方法:

http://www.cnblogs.com/ityouknow/p/6906917.html
http://www.jianshu.com/p/167afb5447d4
http://blog.csdn.net/chenhuaping007/article/details/55253903
http://www.ityouknow.com/springcloud/2017/05/22/springcloud-config-git.html


        当然也可以使用git作为配置文件仓库的管理,和svn实现的步骤差不多,具体的也可以参考上面的博客,网上还有很多资料,这里就不费力气再写一篇关于git作为spring cloud配置中心的使用步骤了。

        我在参考上面的博客的时候遇到一些问题:

        1,默认是到svn的trunk或者branch目录下查找配置文件的,但是我的配置文件不是放在这两个目录下,所以需要配置的svn的uri路径需要指定到存放spring cloud配置文件的上级目录

         2,在配置svn的“default-label: xxx”属性的时候,网上的资料时说配置trunk或者branch,其实是配置的存放spring cloud配置文件的目录名。

         3,没有深刻理解理解spring cloud访问配置文件的http请求的路径含义,正确的是这样的http://localhost:9091/fire-sensor/dev/config-repo,解释:http://ip:端口/application/profile/label

     application就是配置文件的名称,profile标志是开发版,测试版,还是生产版,label表示的是存放配置文件的文件夹名。比如:

仓库中的配置文件会被转换成web接口,访问可以参照以下的规则:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

         



阅读全文
0 0
原创粉丝点击