com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config org.springframework.cloud spring-cloud-starter-bootstrap
server:
#项目端口号(boostrap.yml中配置后,可在application.yml中不配置)
port: 8083
#spring:
# application:
# # 应用名对应nacos配置中心的Data Id
# name: nacos-config-client
# cloud:
# nacos:
# #指定nacos注册中心地址(boostrap.yml中配置后,可在application.yml中不配置)
# discovery:
# server-addr: 127.0.0.1:8848
# config:
# #不填写默认就是项目的应用名
# prefix: ${spring.application.name}
# #指定nacos配置中心地址
# server-addr: 127.0.0.1:8848
# #指定配置文件后缀名
# file-extension: yml
# #这里需要注意namespace的配置不是使用名称,而是使用Namespace的ID。
# #namespace: 3a74eaaa-031c-4cae-9441-3c159febeb79
# #要导入的其它配置文件的data-id,多个之间使用逗号分隔
# shared-dataids: redis-config.yml
# refreshable-dataids: redis-config.yml
spring:
application:
# 会自动根据服务名拉取data-id对应的配置文件.如果data-id跟服务名不一致 就需要手动指定data-id
# 跟服务名相同的data-id的配置文件,称之为默认的配置文件
# 除了默认的配置文件,其他配置文件必须写上后缀
name: config-client
cloud:
nacos:
discovery: #注册中心
server-addr: 127.0.0.1:8848
# username: nacos
# password: nacos
config: #配置中心
prefix: ${spring.application.name}
#指定nacos配置中心地址
server-addr: 127.0.0.1:8848
file-extension: yml # 使用的 nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
namespace: 3a74eaaa-031c-4cae-9441-3c159febeb79 # 使用的 nacos 的命名空间,默认为 null
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
# 共享配置集数组
shared-configs:
- data-id: redis-config.yml
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
refresh: true # 是否自动刷新配置,默认为 false
package com.yk.configclient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SuppressWarnings("all")
@RefreshScope
public class TestController {
@Value("${email.host}")
private String host;
@Value("${email.username}")
private String username;
@Value("${email.password}")
private String password;
@Autowired
private ConfigClientApplication.EmailProperties properties;
@Value("${redis.host}")
private String redisHost;
@Value("${redis.port}")
private String redisPort;
@RequestMapping("/test01")
public String test01(){
StringBuffer sb = new StringBuffer();
sb.append("host:"+host);
sb.append("username:"+username);
sb.append("password:"+password);
sb.append("properties:"+properties);
sb.append("host:"+redisHost);
sb.append("port:"+redisPort);
return sb.toString();
}
}
package com.yk.configclient;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Configuration;
@SpringBootApplication
@EnableDiscoveryClient
@SuppressWarnings("all")
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
@Configuration
@Data
@ConfigurationProperties(prefix = "email")
public class EmailProperties{
private String host;
private String username;
private String password;
}
}
1.在nacos中加一个配置
注:运行结果
java -jar xx.jar --spring.cloud.nacos.config.namespace=命名空间ID