【发布时间】:2014-07-30 12:27:41
【问题描述】:
春季版: 3.2.6.RELEASE
我正在尝试通过 Spring 中的 Environment 类访问属性文件中的属性,但自动连接的 Environemnt 始终为 null
@Configuration
@PropertySource("classpath:server.properties")
@EnableNeo4jRepositories(basePackages = "com.repositories")
public class Neo4jConfig extends Neo4jConfiguration {
@Autowired
private Environment env;
@Bean(destroyMethod = "shutdown")
public GraphDatabaseService graphDatabaseService() {
return new SpringRestGraphDatabase(env.getRequiredProperty("neo4j.server.url"));
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
@Configuration
@Import({JMSConfig.class, Neo4jConfig.class})
@ComponentScan(basePackageClasses=BeansPackageMarker.class)
public class ApplicationConfig {
}
@Value 工作正常,所以我确信 Spring 能够找到我的属性文件,并用属性文件中的相应值正确替换属性占位符
现在我只想使用Environment 来获取属性值而不是${...},但env 始终是null。
这是我创建ApplicationContext的方式
ApplicationContext appCtx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
【问题讨论】:
-
我不相信是这种情况。你能发布一个显示 NPE 的堆栈跟踪吗?
标签: spring