Создайте bean-компонент, который загружает свойства (и принимает имя файла в качестве аргумента) и вставляет его вместо этого.
РЕДАКТИРОВАТЬ При использовании аннотаций такие вещи, как внедрение в конструктор, становятся более простыми:
@Bean
public Map<String,String> configuration() {
return EmbeddedGraphDatabase.loadConfigurations( "neo4j_config.props" );
}
@Bean
public GraphDatabaseService graphDb() {
return new EmbeddedGraphDatabase( "data/neo4j-db", configuration() );
}
Обратите внимание, что метод определения второго компонента "просто" вызывает первый. Когда этот код будет выполнен, Spring выполнит некоторую магию, поэтому вы все равно сможете переопределить bean-компонент в другом месте (то есть bean-компоненты по-прежнему перезаписывают друг друга), и он обеспечит выполнение тела метода только один раз (независимо от того, как часто и откуда был назван).
Если конфиг находится в другом @Configuration
классе, то вы можете @Autowired
it:
@Autowired
private Map<String,String> configuration;
@Bean
public GraphDatabaseService graphDb() {
return new EmbeddedGraphDatabase( "data/neo4j-db", configuration );
}