> 文章列表 > 注解@Value注解获取不到nacos的配置文件,获取为null

注解@Value注解获取不到nacos的配置文件,获取为null

注解@Value注解获取不到nacos的配置文件,获取为null

背景

一、首先排除nacos中的配置与代码中的调用是否一致(注意nacos中配置文件的格式),检查名称、命名空间命名格式等。
二、注解是否添加
补充:
常见nacos配置文件是yaml.

史愿

它的基本语法规则如下。

1大小写敏感

2使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

3缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

4 # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

自己遇到的问题

自己在类中使用了@value注解获取nacos中的配置文件,但是无论怎么样都是取得为null

原因

米泽玄师

@Value(“${属性名}”) 注解是通过对象的set 方法赋值的,构造方法的执行在set方法之前,所以在构造方法中使用变量会发现变量为 null。

构造函数的执行优先级要高于spring的注入

构造方法在整个对象的生命周期内只调用一次

构造方法创建的对象你想去改变它的属性值是不行的,只能重新再创建一个对象,之前的对象就没用了

知识补充

其实,构造方法的主要作用就是为对象成员变量赋初始值,总是与new运算符一起使用在创建对象的语句中——也就是说,**只要你new一个对象出来,就会相应地调用这个类的构造方法。**有参数的构造方法可以对对象进行初始化,但建议写了有参的构造方法后再写一个无参的空的构造方法,便于创建一个对象而不给它的成员变量赋初值。要注意,自己写了有参的构造方法,编译器是不会再补充一个缺省构造方法的。

原文链接:_白日梦

有趣的疑问

java中有了set和get后,那构造函数作用是

set跟get在实例化任何对象的时候都可以赋值以及更改。但是好像构造函数创建出来的实例就没法再更改属性值了。