在我们开始之前,是的,我知道还有另一个问题,但它们不是同一个问题,我找不到任何可以解决此问题的方法。好吧,我有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;
我已经复制了你的代码,它对我有用。如果您仍然无法使其正常工作,那么我建议您尝试在一个新的空项目中重现它。
添加回答
举报
0/150
提交
取消