簡體   English   中英

無法使用application.properties設置值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM