SpringBoot环境
1、添加依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
注意:版本是nacos-config-spring-boot-starter的版本,不是nacos的版本,我这个用的是0.2.3,而nacos的版本是1.1.3
2、在 application.properties 中配置 Nacos server 的地址:
nacos.config.server-addr=IP:8848
3、确定命名空间(重点)
在application.properties 增加
nacos.config.namespace=命名空间名称
问题:nacos.config.type=yaml不好用,暂时没有找到答案
4、使用 @NacosPropertySource ,加载dataId=example的配置源,开启自动刷新
@SpringBootApplication
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigApplication.class, args);
}}
5、通过注解@NacosValue 注解设置属性值
@Controller
@RequestMapping("config")
public class ConfigController {
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = GET)
@ResponseBody
public boolean get() {
return useLocalCache;
}
}
上述步骤在官网上都有,除了命名空间。在实践中,我觉得和开发相对应的可以简单解释一下:
1、命名空间在springboot的配置文件中给出,相当于部署的环境或者用户
2、dataId,相当于一个配置集合,说配置文件有点不严谨,如果一个配置集合对应一个文件也可以认为对应配置文件,这样好理解一点。这个只能写死在代码中
3、value是某个属性,自然也只能写死在代码中。
这样和我们普通配置有什么区别吗?实际上没有什么,我更建议写一个Component对应配置集合,其他使用配置的调用这个component,如果不需要使用nacos做配置,则修改component就可以了。