我有一个Spring-boot项目,由于配置文件,我需要从application.properties文件获取值。
但是在类中注入配置文件时,对象返回null。
Application.properties:
server.ip=000.000.000.000
server.port=0000
配置类:
@Component
@ConfigurationProperties(prefix = "server")
public class AppProperties {
private String ip;
private Integer port;
... getters and setters
我需要这些值的班级
@Component
public class Teste {
@Autowired
private AppProperties properties;
...
socket = new Socket(properties.getIp(), properties.getPort());
在调试时,在应用程序启动时,AppProperties中的值将获得正确的值。
答案 0 :(得分:1)
您可以像这样使用@Value注释从application.properties文件访问属性值
@Value("${<propertname>}")
private String userBucketPath;
答案 1 :(得分:0)
您的代码看起来正确,但是我建议您也尝试以下步骤:
使用@PropertySource批注定义属性位置。 (我知道默认位置是类路径)。
如果确实需要向您的项目添加配置文件。创建一个新的应用程序属性文件,例如application- {profile-name} .properties,并在启动应用程序时传递JVM参数 -Dspring.profiles.active = {profile-name} 。
我不知道这确实是您的需要或答案。我只是想分享一个额外的步骤。
答案 2 :(得分:-1)
由于使用data
实例化了Teste类,因此我获得了属性的空值
解决方案是将Teste类与Intection结合使用。
new Teste().