为了账号安全,请及时绑定邮箱和手机立即绑定

Spring boot @Value 为空

Spring boot @Value 为空

守着星空守着你 2021-05-30 09:23:13
在我们开始之前,是的,我知道还有另一个问题,但它们不是同一个问题,我找不到任何可以解决此问题的方法。好吧,我有package aimports ...@SpringBootApplicationpublic class LauncherApplication implements CommandLineRunner {  @Autowired  private SubListener subListener;  @Value("${proj.id}")  private String testy;  public static void main(String[] args) {    SpringApplication.run(LauncherApplication.class, args);}@Overridepublic void run(String... args) throws Exception {    System.out.println(subListener.getProjID());    System.out.println(testy);  }}然后在我的子监听器上package a.bimports ...@Componentpublic class SubListener {  @Value("${proj.id}")  private String projID;  public String getProjID() {    return projID;  }}最后在 application.properties 上的资源文件夹中proj.id=Hello from file现在,所有帐户都应该工作,SpringBootApplication 具有组件扫描的东西,bean 被标记为 @component 并且是 springbootapplication 的子包,属性文件具有默认名称并位于默认目录中。我找不到一个不工作的原因。还请注意,当我在 testy 上调用该属性时,它仅在从子侦听器返回时才返回 null。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我唯一的猜测是 SubListener 类中的 @Value 注释来自错误的包。您能否检查一下您使用的是此导入而不是其他导入:

import org.springframework.beans.factory.annotation.Value;

我已经复制了你的代码,它对我有用。如果您仍然无法使其正常工作,那么我建议您尝试在一个新的空项目中重现它。


查看完整回答
反对 回复 2021-06-02
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信