创建一个基础的Spring Boot工程,并在pom.xml
中引入需要的依赖内容:
org.springframework.boot
spring-boot-starter-parent
1.5.8.RELEASE
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-config-server
org.springframework.cloud
spring-cloud-dependencies
Dalston.SR2
pom
import
创建Spring Boot的程序主类,并添加@EnableConfigServer
注解,开启Config Server。
/**
* @author 向振华
* @date 2018/10/23 17:00
*/
@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
application.properties
中配置服务信息。
spring.application.name=config-server
server.port=1002
#环境
spring.profiles.active=dev
application-dev.properties中配置git信息以及服务注册地址。
# git管理配置
spring.cloud.config.server.git.uri=https://github.com/xxiangzh/config-repo.git
[email protected]
spring.cloud.config.server.git.password=
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
在git上新建config-repo工程,添加配置文件,不同的环境区分不同的配置文件
test-server-dev.properties 开发环境
test-server-test.properties 测试环境
test-server-pro.properties 生成环境
server.port=1003
server.session.timeout=3600
spring.profiles.active=dev
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=127.0.0.1:${server.port}
eureka.instance.ip-address =127.0.0.1
management.security.enabled=false
test.xzh=xiangzhenhua
在test-server工程添加bootstrap.properties配置
spring.application.name=test-server
spring.cloud.config.label=master
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
spring.profiles.active=dev
spring.cloud.config.profile=${spring.profiles.active}
eureka.client.service-url.defaultZone=http://localhost:1001/eureka/
Spring Cloud Config也提供本地存储配置的方式:
我们只需要设置属性spring.profiles.active=native
,Config Server会默认从应用的src/main/resource
目录下检索配置文件。
也可以通过spring.cloud.config.server.native.searchLocations=file:F:/properties/
属性来指定配置文件的位置。
新建TestController
/**
* @author 向振华
* @date 2018/12/17 17:20
*/
@RefreshScope //配置自动刷新
@RestController
@RequestMapping("test")
public class TestController {
@Value("${test.xzh}")
private String xzh;
@RequestMapping("/test1")
public String test1(){
return xzh;
}
}
启动eureka-server,启动config-server,启动test-server
启动工程后,访问:http://localhost:1001/
访问test-server http://localhost:1003/test/test1
返回:xiangzhenhua
配置已经被读取到了。