簡體   English   中英

如何將屬性文件中的值注入字段?

[英]How to inject value from property file into field?

我有一些課:

public class MyResources {

    @Value("${my.value}") // value always is null!!!
    private String PATH_TO_FONTS_FOLDER;
}

我有一個屬性文件:

my.value=/tmp/path

和我的配置類:

@Configuration
public class MyBeanConfig {
    @Bean
    public MyResources myResources() throws Exception 
    {
        return new MyResources();
    }
}

如何將屬性文件中的屬性注入到此類字段中?

您必須使用@Component批注標記MyResources ,以使Spring能夠管理該bean。

這將完成工作:

@Component
public class MyResources {

    @Value("${my.value}") // value always is null!!!
    private String PATH_TO_FONTS_FOLDER;
}

一種方法是將@Value("${my.value}")移至MyBeanConfig ,並向MyResources添加一個接受該值的構造函數。 例如:

@Configuration
public class MyBeanConfig {
    @Value("${my.value}")
    private String PATH_TO_FONTS_FOLDER;

    @Bean
        public MyResources myResources() throws Exception {
        return new MyResources(PATH_TO_FONTS_FOLDER);
    }
}

但是基於該示例,不需要MyBeanConfig 只需將MyResources標記為@Component(或其他適當的標記),即可讓Spring管理實例的創建。 如果Spring創建了實例(而不是使用示例中的new ),則將注入@Value。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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