一共需要配置服务端,和配置客户端,服务端从svn上读取配置,客户端从服务端上读取配置
创建服务端
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
</dependency>
创建svn,他在调用时会将多个yml内容合并成一个yml
yml配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
server:
port: 8768
spring:
cloud:
config:
server:
svn:
uri: https://desktop-qmsllbd:1443/svn/SpringCloudConfig
username: admin
password: a123
# default-label: trunk ,默认是trunk文件夹下的文件
# 声明使用的是svn,否则默认git
profiles:
active: subversion
application:
name: config-server
启动类添加注释,然后启动项目
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
打开网址测试一下
2,配置客户端
为了方便测试我引入了 web 依赖,服务端和客户端都需要在注册中心注册
<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>
客户端需要新建一个 bootstrap.yml,以下配置均在bootstrap.yml中
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
spring:
application:
name: test-config
cloud:
config:
discovery:
enabled: true
#服务端在注册中心的 id名字
service-id: config-server
profile: dev
#指定文件夹trunk
label: trunk
management:
endpoint:
service-registry:
enabled: false
server:
port: 8769
启动项目后看下两个是否已经在注册中心注册了,然后写一个controller 测试
@RestController
public class ReadConfigController {
//在配置文件中获取 key 为name的value值
@Value("${name}")
private String name;
@RequestMapping("/read")
public String readCondig(){
return this.name;
}
}
已经显示,说明调用成功