我上了一堂课
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();
}
}
如何将属性文件中的属性注入到此类字段中?
答案 0 :(得分:2)
您必须用MyResources
注释标记@Component
,Spring才能管理该bean。
这将完成工作:
@Component
public class MyResources {
@Value("${my.value}") // value always is null!!!
private String PATH_TO_FONTS_FOLDER;
}
答案 1 :(得分:1)
一种方法是将@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。