本案例旨在介绍如何使用SpringCloudAlibaba Nacos Config
进行服务配置管理。
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
spring.application.name=sca-nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
注意事项:以上配置是 Nacos 服务端地址和微服务应用名称,该配置需要配置于
bootstrap.properties
文件中。
在Nacos
服务端添加如下配置:
server.port=7003
注意事项:
- dataid是以 properties(默认的文件扩展名方式)为扩展名。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
@SpringBootApplication
public class ScaNacosConfigApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(ScaNacosConfigApplication.class, args);
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String serverPort = environment.getProperty("server.port");
System.out.printf("------------ 启动端口号: " + serverPort + " ------------\n");
}
}
启动应用,观察控制台输出信息,如下:
2019-12-29 16:39:57.546 INFO 64523 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$21406196] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-12-29 16:39:57.744 INFO 64523 --- [ main] c.t.s.n.c.ScaNacosConfigApplication : Started ScaNacosConfigApplication in 2.166 seconds (JVM running for 3.04)
------------ 启动端口号: 7003 ------------
Disconnected from the target VM, address: '127.0.0.1:52406', transport: 'socket'
Nacos Config
对于 yaml 格式也是完美支持的,这个时候,只需两步就可以完成:
spring.cloud.nacos.config.file-extension=ymal
server:
port: 7004
Data ID: sca-nacos-config.yml
Group: DEFAULT_GROUP
Nacos Config
服务端如图:
配置完成后,重新应用程序,观察控制台输出:
2019-12-29 20:37:06.093 INFO 66737 --- [ main] c.t.s.n.c.ScaNacosConfigApplication : Started ScaNacosConfigApplication in 1.991 seconds (JVM running for 2.853)
------------ 启动端口号: 7004 ------------
Disconnected from the target VM, address: '127.0.0.1:54731', transport: 'socket'
nacos-config
在加载配置的时候,不仅仅加载了以 dataid 为 ${spring.application.name}.${file-extension:properties}
为前缀的基础配置,还加载了dataid为 ${spring.application.name}-${profile}.${file-extension:properties}
的基础配置。在日常开发中如果遇到多套环境下的不同配置,可以通过Spring 提供的 ${spring.profiles.active}
这个配置项来配置。
在应用的 bootstrap.properties 配置文件中增加profile
属性配置,如下:
spring.profiles.active=dev
同时,在Nacos
服务端增加sca-nacos-config-dev.yaml
配置,修改端口号为:7005。配置如下:
server:
port: 7005
重新启动应用,观察控制台输出,如下:
2019-12-29 20:49:55.882 INFO 67003 --- [ main] c.t.s.n.c.ScaNacosConfigApplication : Started ScaNacosConfigApplication in 1.883 seconds (JVM running for 2.675)
------------ 启动端口号: 7005 ------------
Disconnected from the target VM, address: '127.0.0.1:54988', transport: 'socket'
参考链接:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
源代码链接:https://github.com/myNameIssls/spring-cloud-alibaba-study/tree/master/sca-dependences/sca-nacos-config