刚刚讲完理论, 那么我们来实践一下, 怎么配置这个confi呢? 我们刚刚说过 由一个config server 来管理所有的配置文件, 那么我们现在新建一个config server 项目 然后引入依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
spring-cloud 的依赖我们就不提了
然后启动类上面加入注解EnableConfigServer:
@SpringBootApplication
@EnableConfigServer
public class AppConfig {
public static void main(String[] args) {
SpringApplication.run(AppConfig.class);
}
}
yml配置:
server:
port: 8080
spring:
application:
name: test
cloud:
config:
server:
git:
uri: https://github.com/513667225/my-spring-cloud-config.git #配置文件在github上的地址
# search-paths: foo,bar* #Configserver会在 Git仓库根目录、 foo子目录,以及所有以 bar开始的子目录中查找配置文件。
# clone-on-start: true #启动时就clone仓库到本地,默认是在配置被首次请求时,config server才会clone git仓库
#native:
#search-locations: classpath:/config #若配置中心在本地,本地的地址
配置好以后,我们先试试通过config server来读取配置
这里我在github上有一些配置文件:
我们来看看test-config的内容:
那么如何通过config server来访问呢?
启动项目后, 我们可以通过名字来读取里面的配置信息:
那我们要获取dev环境/或者test环境下的配置呢? 通过-隔开即可。
我们现在来访问 test-config-dev:
同理 如果要访问test环境下的配置, 改为test即可
其实,config访问配置文件,是需要一个具体的访问规则的, 那么这个访问规则到底是什么呢? 我们可以在官网找到:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
application就是配置文件的名字, profile就是对应的环境 label就是不同的分支 由这个规则可见, 我们使用的是第二种规则, 剩下的规则, 同学们可以自己去试试 , 对于yml 和properties类型config可以完美转换, 也就是说你存的是yml 但是可以读取为properties类型的反过来也是如此: