刚启动你的可能没有上面那么多节点的,只有一个consul默认的
创建一个数据节点,后面会用到,数据内容如下:
student:
name: jack3
age: 20
name: tom
数据节点是:jack/consul4/data
创建一个springboot项目
1 pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2 添加 bootstrap.yml 配置文件
server:
port: 8080
spring:
application:
name: consul4
cloud:
consul:
#配置consul服务器的host
host: 192.168.0.128
#配置端口
port: 8500
config:
#配置默认文件名
default-context: ${spring.application.name}
#是否启用consul配置
enabled: true
#配置文件格式
format: YAML
#配置基本文件,默认值config
prefix: jack
#配置文件名,默认data
data-key: data
discovery:
register: false# 消费者,不需要注册到consul中
# 表示注册时使用IP而不是hostname
prefer-ip-address: true
# 指定服务ip
ip-address: 192.168.0.117
3 StudentConfig——配置Java类
@Component
@ConfigurationProperties(prefix = "student")
@Data
public class StudentConfig {
private String name;
private Integer age;
}
4 StudentController——配置测试类
@RestController
@RequestMapping("test")
@RefreshScope
public class TestController {
@Autowired
private StudentConfig studentConfig;
@Value("${name}")
private String name;
@RequestMapping("test1")
public String test1() {
return studentConfig.toString();
}
@RequestMapping("test2")
public String test2() {
return name ;
}
}
5 成功访问
consul已经启动:
http://localhost:8080/test/test1
http://localhost:8080/test/test2