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