springcloud---config配置中⼼[本地、git获取配置⽂件]
spring boot      1.5.9.RELEASE
spring cloud    Dalston.SR1
1.前⾔
spring cloud config 配置中⼼是什么?
  为了统⼀管理配置信息,⽐如数据库的账户密码等信息,将⼀个服务器注册为配置中⼼,其他服务可以从配置中⼼获取配置⽂件信息。2.新建配置中⼼端
(1)新建⼀个端⼝为100的 maven⼦⼯程,作为配置中⼼
引⼊依赖
完整l
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.atguigu.springcloud</groupId>
<!--    ⽗级maven模块的⼯程名字-->
<artifactId>microservicecloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId&le</groupId>
<artifactId>demo-my-cen-myconfig</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-my-cen-myconfig</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- actuator监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--        <!– zuul路由⽹关 –>-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.cloud</groupId>-->
<!--            <artifactId>spring-cloud-starter-zuul</artifactId>-->
<!--        </dependency>-->
<!-- springCloud Config -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- 热部署插件 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
View Code
(2)看⼀下⽬录结构
(3)application.properties配置信息,名称设为  config-service  ,名字随意
当前演⽰获取本地⽂件,在resources ⽂件夹新建⼀个 properties ⽂件,我这设为  configText.properties
  ,随便加⼀些信息⽤于测试完整源码
# 服务端⼝
server.port=100
# 这个是指定服务名称
spring.application.name=config-service
#注册中⼼地址
eureka.client.serviceUrl.defaultZone=localhost:7001/eureka/
#本地配置⽂件,默认获取在resources路径下的⽂件
spring.profiles.active=native
#配置的Git仓库的地址
#fig.server.git.uri=github/xuwujing/springcloud-study/
#git仓库地址下的相对地址多个⽤逗号","分割。
#fig.server.git.search-paths = /springcloud-config/config-repo
#git仓库的账户
#fig.server.git.username =
#git仓库的密码
#fig.server.git.password =
View Code
如果需要获取git仓库的⽂件,则需要把
spring.profiles.active=native
注释掉,换成被注释的git配置内容,
完整源码
//todo
(4)启动类配置,任何启动
注:配置⽂件的名称是configText.properties,但是如果直接该名称的话是获取不到的,因为在配置⽂件名需要通过-来进⾏获取,如果配置⽂件名称没有-,那么添加了-之后,会⾃动进⾏匹配搜索。
下⾯的url会映射{application}-{profile}.properties对应的配置⽂件,{label}对应git上不同的分⽀,默认为master。
3.新建服务消费者端
(1)新建⼀个端⼝为200的 maven⼦⼯程,作为服务消费者端,⽤于获取配置中⼼⽂件
也需要引⼊配置中⼼依赖才可以
完整l
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"        xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.atguigu.springcloud</groupId>
<!--    ⽗级maven模块的⼯程名字-->
<artifactId>microservicecloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId&le</groupId>
<artifactId>demo-my-cen-myconfig-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-my-cen-myconfig-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--        配置中⼼依赖包-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
View Code
(2)⽬录结构
(3)配置 application.properties
(4)新建⼀个 bootstrap.properties ⽂件,spring boot启动  bootstrap.properties ⽂件优先于 application.properties ⽂件读取配置,因此注册信息需要在bootstrap⽂件设置
完整信息
#获取配置⽂件到名称
fig.name=configText
#获取配置的策略
springcloud和springboot
fig.profile=pro
#获取配置⽂件的分⽀,默认是master。如果是是本地获取的话,则⽆⽤,
fig.label=master
#开启配置信息发现
abled=true
#指定配置中⼼的service-id,便于扩展为⾼可⽤配置集,不区分⼤⼩写
fig.discovery.serviceId=config-service
#这个是设置与Eureka Server交互的地址,客户端的查询服务和注册服务都需要依赖这个地址。
eureka.client.serviceUrl.defaultZone=localhost:7001/eureka/
View Code
(5)配置 controller 接⼝,⽤于验证能否读取配置中⼼的⽂件,name 就是配置中⽂本地⽂件 configText.properties的参数,直接调⽤即可