gpt4 book ai didi

spring-boot - Spring Boot中如何获取文件属性的内容

转载 作者:行者123 更新时间:2023-12-03 20:32:19 25 4
gpt4 key购买 nike

作为标题,我的自定义属性:

#app settings
my.chassisNum=10

代码:
@PropertySource("classpath:appconf.properties")
@ConfigurationProperties(prefix = "my" )
@Component
public class AppConfig {

private String chassisNum;

public String getChassisNum() {
return this.chassisNum;
}

public void setChassisNum(String chassisNum) {
this.chassisNum = chassisNum;
}
}

当 Spring Boot 启动完成时,我得到的“chassisNum”值为 10。
当我在 spring-boot 未启动完成时在其他地方得到它时,它得到“空”
@Component
public class CreateBaseFolder {

private final Logger logger = LogManager.getLogger(CreateBaseFolder.class);
private File f;
@Autowired
AppConfig appconf;

public CreateBaseFolder() {

System.out.println(appconf.getChassisNum());


}

我尝试了很多方法来获取它的值(value),但都是错误的。例如:实现 InitializingBean、@DependsOn ....

最佳答案

假设您有 application.properties内容:

foo.bar=Jerry

您将使用注释 @Value
package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class GetPropertiesBean {

private final String foo;

@Autowired
public GetPropertiesBean(@Value("${foo.bar}") String foo) {
this.foo = foo;
System.out.println(foo);
}

}

当然,我们需要一个入口点:
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

}

然后将类 Application 作为 Spring Boot 应用程序运行,组件是自动加载的,您将在控制台屏幕上看到结果:

Jerry



enter image description here

关于spring-boot - Spring Boot中如何获取文件属性的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43844551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com