应用程序上下文文件包含
的applicationContext.xml
<!-- Directs Java to correct Mongo DB address and port -->
<mongo:mongo host="127.0.0.1" port="27017" />
<mongo:db-factory dbname="myDb" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
问题1 ::从我的课程中,如何从applicationContext.xml文件中检索mongo host =“127.0.0.1”?
示例:
String port = applicatoinContextObject.getValue("mongo host");
//which would return port="127.0.0.1"
这显然不起作用,但这个伪代码正是我想要做的。
答案 0 :(得分:1)
也许您可能最好将特定于环境的配置外部化到属性文件,然后在applicationContext.xml
中使用属性替换。这样,您可以以编程方式轻松访问属性,并将特定于环境的配置与主Spring配置分开。
<强> mongo.properties 强>
mongo.host=127.0.0.1
mongo.port=27017
mongo.dbname=myDb
<强>的applicationContext.xml 强>
<context:property-placeholder location="classpath:/mongo.properties"/>
<!-- Directs Java to correct Mongo DB address and port -->
<mongo:mongo host="${mongo.host}" port="${mongo.port}" />
<mongo:db-factory dbname="${mongo.dbname}" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
然后在你的代码中:
Resource resource = new ClassPathResource("/mongo.properties");
Properties props = PropertiesLoaderUtils.loadProperties(resource);
String mongoPort = props.getProperty("mongo.port");
答案 1 :(得分:1)
深化spring-data-mongodb(java驱动程序)版本。您需要执行以下操作:
Mongo mongo = applicationContext.getBean(Mongo.class);
String host = mongo.getConnectPoint();
关键是你有一个Mongo类型的bean是你的应用程序上下文。