gpt4 book ai didi

java - 无法使用 application.properties 设置值

转载 作者:行者123 更新时间:2023-12-02 05:29:34 24 4
gpt4 key购买 nike

我正在尝试使用非常简单的代码来从 application.properties 注入(inject)值。设置的值是属性名称。

代码有什么问题吗?

应用程序属性

set.browser = ie
    public class A {

@Value("${set.browser}")
private String browser;

public A(){}

public void print(){
System.out.println(browser);
}
}

@Configuration
public class ABean {
@Bean
public A getA(){
return new A();
}
}

public class AMain {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(A.class);

A a = context.getBean(A.class);
a.print();

}
}

最佳答案

首先,您的应用程序不是 Spring Boot 应用程序 - 即使没有组件扫描,您也只是即时化了 Spring 上下文。其次,由于缺少组件扫描,您的 ABean 永远不会被创建 - 您的上下文只有 A bean。要解决此问题,您可以从 ABean 创建上下文:

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ABean.class);

第三,您没有配置PropertySource(如果您的应用程序是Spring Boot应用程序,则application.properties将是默认属性源,并且不需要它):

@PropertySource("classpath:/application.properties")
@Configuration
class ABean {
@Bean
public A getA() {
return new A();
}

}

关于java - 无法使用 application.properties 设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56208246/

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