[英]Failed to set value with application.properties
我正在嘗試一個非常簡單的代碼來從application.properties中注入一個值。 設置的值是屬性名稱。
代碼有什么問題?
application.properties
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啟動應用程序 - 即使沒有組件掃描,您也只是實例化了彈簧上下文。 其次,由於缺少組件掃描,您的ABean永遠不會被創建 - 您的上下文只有一個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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.