为什么获取不到@Value注解值?
2020-12-15 13:54 猎手家园 阅读(3460) 评论(0) 编辑 收藏 举报使用Spring时,你发现竟然获取不到@Value的注解值?
例如我在Resource中配置:
#网站名称 website.name=百度
然后,你需要注意三点:
1、类需要使用@Component、@Controller等进行注解;
2、字段不能使用static修饰;
3、不能在bean初始化时构造方法中使用。
@Component public class Test(){ @Value("{website.name}") private String webSiteName; public Test(){ //不能在此使用 } }
以上是没有问题的。
但是...... 我在另一个类中调用时:
public class Test2(){ Test model=new Test(); System.out.println(model.webSiteName); }
这样却取不到值,为什么?
困扰了我好久,最后翻了N多帖子以后,终于找到了原因。原来,使用@Value的类,在spring中,不能直接通过new 操作符来使用,而是应该通过spring的注解 @Autowired 来使用。
public class Test2(){ @Autowired private Test model; System.out.println(model.getWebSiteName()); }
这样就可以获取到了。
欢迎关注我的公众号:云栖语,不一样的研发视界。

云栖语微信公众号:change-1978
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术