参考文档:http://cloud.spring.io/spring-cloud-static/Dalston.RELEASE/
工程GitHub地址:https://github.com/Pasenger/spring-cloud
1. 创建Maven工程
2. pom.xml
<?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.pasenger.springcloud</groupId>
<artifactId>config-client</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config</artifactId>
<version>1.3.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
3. application.yml
server:
port: 9082
logging:
level:
com.netflix.discovery: 'OFF'
org.springframework.cloud: 'DEBUG'
4. bootstrap.yml
spring:
cloud:
config:
uri: http://localhost:9099
name: uploads #使用uploads配置
profile: ${config.profile:dev} #如果启动时未添加config.profile参数,则加载dev配置
5. 启动类
package com.pasenger.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Created by Pasenger on 2017/4/15.
*/
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
6. REST API
package com.pasenger.springcloud;
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;
/**
* Created by Pasenger on 2017/4/15.
*/
@RestController
@RequestMapping(value = "/upload")
public class UploadsController {
@Value("${upload.dir}")
private String uploadDir;
@Value("${upload.suffix}")
private String uploadSuffix;
@RequestMapping(value = "/dir", method = RequestMethod.GET)
public String getUploadDirApi(){
return uploadDir;
}
@RequestMapping(value = "/suffix", method = RequestMethod.GET)
public String getUploadSuffixApi(){
return uploadSuffix;
}
public String getUploadDir() {
return uploadDir;
}
public void setUploadDir(String uploadDir) {
this.uploadDir = uploadDir;
}
public String getUploadSuffix() {
return uploadSuffix;
}
public void setUploadSuffix(String uploadSuffix) {
this.uploadSuffix = uploadSuffix;
}
}
其中的uploadDir和uploadSuffix既从config-server获取的配置。
7. 测试
curl http://localhost:9082/upload/dir
/var/log
curl http://localhost:9082/upload/suffix
docx
8. 工程结构