这一篇是搭建一个config client端从config服务端拉取配置
创建了一个子项目 vcloud-oauth
pom:
<?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>
<parent>
<groupId>com.pwl</groupId>
<artifactId>vcloud</artifactId>
<version>1.0.0</version>
<relativePath/>
</parent>
<groupId>com.pwl</groupId>
<artifactId>vcloud-oauth</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>vcloud-oauth</name>
<description>认证中心</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
必须创建bootstrap.yml配置文件
注意图中红色的部分,因为要通过vcloud-config服务去拉取gitlab上的配置信息
bootstrap.yml
spring:
application:
name: vcloud-oauth-server
profiles:
active: dev
cloud:
config:
fail-fast: true
profile: ${spring.profiles.active} # #vcloud-oauth-server-dev
label: ${spring.profiles.active} ##dev分支上拉取配置名为vcloud-oauth-server-dev.yml
uri: http://127.0.0.1:4001/
---
spring:
profiles: dev
eureka:
instance:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 5
lease-expiration-duration-in-seconds: 20
client:
serviceUrl:
defaultZone: http://root:root@127.0.0.1:1025/eureka/
registry-fetch-interval-seconds: 10
uri 是vcloud-config服务启动的端口
1.加载顺序
这里主要是说明application和bootstrap的加载顺序。
bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载。
bootstrap.yml 用于应用程序上下文的引导阶段。
bootstrap.yml 由父Spring ApplicationContext加载。
父ApplicationContext 被加载到使用 application.yml 的之前。
启动类
package com.pwl.oauth;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class VcloudOauthApplication {
public static void main(String[] args) {
SpringApplication.run(VcloudOauthApplication.class, args);
}
}
依次启动服务
vcloud-eureka vcloud-config vcloud-oauth服务
vcloud-oauth服务启动的时候会去config中读取配置 server port 4000端口
已经读取成功