【发布时间】:2018-05-24 06:55:46
【问题描述】:
我正在尝试仅使用注释来创建 Spring bean。我无法从属性文件中为我的 @Bean 类加载值。
这是我的代码:
这是我的主要课程
public class AnnotationDI {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(ConfigurationProvider.class);
ApplicationProperties properties = (ApplicationProperties)context.getBean(ApplicationProperties.class);
System.out.println(properties);
}}
配置类
@Configuration
public class ConfigurationProvider {
private ApplicationProperties m_applicationProperties;
@Bean
public ApplicationProperties getApplicationProperties() {
return new ApplicationProperties();
}
}
豆类
@PropertySource(value = { "classpath:application.properties" })
public class ApplicationProperties {
@Value("${longThreadCount}")
private String m_longProcessThread;
@Value("${routeTimeout}")
private String m_routeTimeout;
@Value("${updateDirectoryPath}")
private String m_updateDirectoryPath;
public String getLongProcessThread() {
return m_longProcessThread;
}
@Override
public String toString() {
return "ApplicationProperties [m_longProcessThread=" +m_longProcessThread"]";
}
}
当我运行这个程序时,我得到以下输出
m_longProcessThread=${longThreadCount}
知道我做错了什么吗?
【问题讨论】:
-
您需要将
PropertySourcesPlaceholderConfigurer添加为public static@Bean才能正确解析@Value。 -
谢谢,它有效。您能否将其作为答案提及,以便我接受。