1.config pom文件
<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.knife</groupId>
<artifactId>ConfigTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ConfigTest</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
2.配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:10000/eureka/
spring:
application:
name: springcloud-config
cloud:
config:
server:
git:
uri: https://gitee.com/wangzhejun/springcloudconfig.git
search-paths: /springcloudconfig
username: *******
password: *******
server:
port: 9005
3.启动类
package com.knife.ConfigTest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class ConfigApp
{
public static void main( String[] args )
{
SpringApplication.run(ConfigApp.class,args);
}
}
4.启动配置项目,访问浏览器能看到git 上的配置信息
{"name":"application","profiles":["dev"],"label":"master","version":"3893e4e9589514a16f3ae2b22469c59c37a42d08","state":null,"propertySources":[{"name":"https://gitee.com/wangzhejun/springcloudconfig.git/application-dev.yml","source":{"my.message":1234567,"word":"test"}}]}
5.客户端pom文件
<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.knife</groupId>
<artifactId>ProviderTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ProviderTest</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
6.客户端配置bootstrap.yml(优先级高于application.yml)
eureka:
client:
serviceUrl:
defaultZone: http://localhost:10000/eureka/
spring:
application:
name: providerTest
cloud:
config:
name: application
profile: dev
label: master
discovery:
enabled: true
serviceId: springcloud-config
server:
port: 2222
7.启动类
package com.knife.ProviderTest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ProviderApp {
public static void main(String[] args) {
SpringApplication.run(ProviderApp.class, args);
}
}
8.controller层
package com.knife.ProviderTest;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ProviderController {
@Value("${my.message}")
private String message;
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test() {
return "i am provider "+message;
}
}
9.启动客户端能看到获取配置日志
2019-12-02 13:38:37.088 INFO 9720 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://172.17.10.30:9005/
2019-12-02 13:38:39.725 INFO 9720 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=application, profiles=[dev], label=master, version=a89ea039203db1937ad0f7b726ba558e3b9a8a74, state=null
2019-12-02 13:38:39.726 INFO 9720 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource {name='configClient'}, MapPropertySource {name='https://gitee.com/wangzhejun/springcloudconfig.git/application-dev.yml'}]}