springboot专栏 | ||
---|---|---|
上一篇 | 主目录 | 下一篇 |
【前言】
1 nacos
2 迁移步骤
springboot原项目配置文件改造Nacos配置中心来管理:
第一步:pom文件新增
dependencies标签下新增
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
build标签下新增
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
对应profiles->profile->properties下新增
<serverAddr>192.168.XXX.XX:XXXX</serverAddr>#nacos的地址和端口
<namespace>命名空间id</namespace>
第二步:resources目录下新建bootstrap.yml
spring:
application:
name: 项目名
cloud:
nacos:
config:
server-addr: '@serverAddr@'
prefix: ${spring.application.name}
file-extension: yml
namespace: '@namespace@'
第三步:新建NacosConfig配置类配置相关Nacos信息
@Slf4j
@Component
//@RefreshScope
public class NacosConfig {
@Value("${nacos.config.serverAddr}")
private String serverAddr;
@Value("${nacos.config.namespace}")
private String namespace;
@Value("${nacos.config.dataId}")
private String dataId;
@Value("${nacos.config.group}")
private String group;
@Bean
public ConfigService build() {
ConfigService configService = null;
try {
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
properties.put("namespace", namespace);
configService = ConfigFactory.createConfigService(properties);
configService.getConfig(dataId, group, 3000);
configService.addListener(dataId, group, new Listener() {
@Override
public void receiveConfigInfo(String configInfo) {
log.info("createTime:"+new Date()+",configInfo:\n"+configInfo);
}
@Override
public Executor getExecutor() {
return null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
return configService;
}
}
- 注意:在需要实时更新@Value属性的class加上
@RefreshScope
注解
第五步:Nocas配置项目名.yml
文件
文件内容就是本地不同环境的配置信息,线上文件就是替换本地配置文件。本地的配置可以删除掉,当本地和nacos都有某一配置项时,优先使用nacos的配置,nacos没有时使用本地的配置项
- 注:在
项目名.yml
文件中加上(配置类中获取这里的值)
nacos:
config:
serverAddr: nacos服务器地址和端口
namespace: 命名空间id
dataId: 项目名.yml
group: DEFAULT_GROUP