【发布时间】:2021-11-20 19:39:34
【问题描述】:
我需要从我的 application.properties 文件中读取值,我已经尝试过:
@ComponentScan(basePackages = "myservice")
public class MailServiceAuthProvider {
@Value("${my.name}")
private String name;
public void myMethod()
{
System.out.println(name);
}
}
我的application.properties在同一个包的资源文件夹中:
my.name=name
但这始终为空
我什至尝试过不从属性文件中读取,而是直接给出值@Value("default-name")
在注解中,但它也是空的。
我在那里阅读了一些教程和一些帖子,它们使用相同的配置。我做错了什么?
UPD 我已将 MailServiceAuthProvider 实例化如下:
@SpringBootApplication
public class App() implements CommandLineRunner {
@Autowired
MailServiceAuthProvider a;
public static void main(String[] args) throws IOException {
SpringApplication.run(App.class, args);
}
@Override
public void run(String... args) throws Exception {
a.myMethod();
}
}
【问题讨论】:
-
MailServiceAuthProvider 是否在 myservice 包中,正如您的组件扫描所暗示的那样?您可以尝试仅使用 Component 注释您的类,然后重试。还要确保你已经为 spring 导入了正确的 Value 注释,即 import org.springframework.beans.factory.annotation.Value;
-
MailServiceAuthProvider是如何实例化的?
标签: java spring properties