spring cloud alibaba中集成nacos,按照中文官网文档给出例子,并且跟着官方步骤新建bootstrap.properties,添加了@Value和@RefreshScope注解,并且也在nacos中按照步骤新建了配置。却没有生效。
原因经过排查是因为没有导入springboot-cloud-start-bootstrap的maven依赖,完整的依赖应该如下:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
另外:这里没有写版本是因为在下面有dependencymanage帮助管理spring cloud alibaba的依赖。
出现了第二个问题,第一个方案添加应用后,可以读取到在配置中心的key值,但是修改之后,Controller返回的值并没有动态改变,经过验证之后发现问题,这是因为Controller是一个bean被注入到spring中的,对于这种bean需要在类上额外添加@RefreshScope注解才能动态刷新。
——————————————————————————————————————
nacos概念:
1.数据集,即一组配置的数据,例如一个data id对应的配置数据
2.命名空间,即namespace,默认是public,新建一个namespace之后会生成一个id,需要配置的时候用这个id
3.分组名,即group,默认的分组为default
如何将nacos的这些概念应用到实际情况?
最佳实践:根据group区分环境,根据命名空间区分具体微服务名