安装启动Nacos后
idea启动可以使用一个配置文件指定配置中心的地址和需要使用的组,配置参数在下面
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
namespace: test
group: public
config:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
namespace: test
file-extension: yml
group: public
启动之后注意观察启动控制台,出现Located property source字样可以查看后面的内容使用的是配置中心中的哪一个配置文件
启动成功之后在需要读取配置文件的类上加上@Componet实例化到spring容器中,使用了@Controller或者@Service就不需要加 @Componet注解,再加上@RefreshScope注解配合@Value注解就可以实现修改配置文件无需重启项目更改路径等操作。
@Component
@RefreshScope
@Data
public class PathConfig {
@Value("${path}")
public String path;
}
需要注意在定义属性时使用的是public修饰,但是不能直接通过类名点属性名得到内容,直接使用类名点属性名获取会是null,只能通过get方法,具体原因不详,懂的可以说说。所以尽量使用private修饰,通过get方法取值。
---------------------------------------------------------------------------------------------------------------------------------
在配置中心里配置的数据库连接相关的参数在修改后会导致数据库连接失败,是立即失败而不是下次重启后连不上数据库,需要重启应用才能重新连接。具体原因也没有深究,懂的可以说说。
---------------------------------------------------------------------------------------------------------------------------------
还有在使用Feign调用url链接接口时
@FeignClient(name = "", url = "${url}", fallbackFactory = Hystrix.class)
在url部分使用了${}占位符读取配置文件的参数,此时是无法通过修改配置中心配置动态刷新的。修改这部分配置需要重启应用。
---------------------------------------------------------------------------------------------------------------------------------
虽然配置中心用到的场景不多,但是在测试转生产的时候确实可以弥补开发没往生产环境配置文件里加配置文件的尴尬。