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