我如何使用该字段注入包含Map的属性文件,以用作其他构造函数arg。
从属性文件加载地图
该bean当前使用以下命令进行设置:
<bean id="graphDbService" class="org.neo4j.kernel.EmbeddedGraphDatabase" init-method="enableRemoteShell" destroy-method="shutdown"> <constructor-arg index="0" value= "data/neo4j-db"/> <constructor-arg index="1" value=? /> </bean>
相当于Java:
Map<String,String> configuration = EmbeddedGraphDatabase.loadConfigurations( "neo4j_config.props" ); GraphDatabaseService graphDb = new EmbeddedGraphDatabase( "data/neo4j-db", configuration );
谢谢
像这样:
<bean id="configuration" class="org.neo4j.kernel.EmbeddedGraphDatabase" factory-method="loadConfigurations"> <constructor-arg value="neo4j_config.props"/> </bean> <bean id="graphDbService" class="org.neo4j.kernel.EmbeddedGraphDatabase" init-method="enableRemoteShell" destroy-method="shutdown"> <constructor-arg index="0" value="data/neo4j-db"/> <constructor-arg index="1" ref="configuration" /> </bean>
这利用了使用任意静态工厂方法创建bean的能力,在这种情况下,使用loadConfigurations()工厂工厂方法来创建configurationbean,然后将其注入到的适当构造函数中EmbeddedGraphDatabase。
loadConfigurations()
configuration
EmbeddedGraphDatabase