当我的 SpringApplicationContext 被一起提升时,我想从属性文件中获取一些值。根据我的阅读,最好为此使用PropertySourcesPlaceholderConfigurer。我在我的spring java配置中创建了那个bean,它正在正确解析属性。
问题是当我试图在我的其他 spring bean 的构造中使用这些属性时,比如在我的 hibernate 配置中。在我的休眠配置中,我有以下字段:
@Value(value = "${myapp.database-access.url}")
public static String DB_ACCESS_URL;
然后我使用该属性声明 url 以访问我的数据源 bean 中的数据库,如下所示:
@Bean
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(DRIVER_CLASS_NAME);
dataSource.setUrl(DATABASE_URL);
dataSource.setUsername(DATABASE_USERNAME);
dataSource.setPassword(DATABASE_PASSWORD);
return dataSource;
}
不幸的是,此时该值为 null,因此我的应用程序引导失败。施工后价值可用,但显然不是施工中期。在这种情况下,有没有办法让 @Value 注释为我工作,还是我必须使用其他东西?
如果我必须使用其他东西,有人有什么建议吗?