首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Fongo覆盖Spring配置

用Fongo覆盖Spring配置
EN

Stack Overflow用户
提问于 2016-11-12 13:56:55
回答 1查看 993关注 0票数 0

我有一个Spring应用程序,它使用Spring集成。在主应用程序配置XML中,我们有这样的东西来定义Mongo实例(有几个):

代码语言:javascript
复制
<mongo:mongo id="mongoOne" replica-set="#{hostUrl}" >
    <mongo:options connections-per-host="25"
                   threads-allowed-to-block-for-connection-multiplier="5"
                   connect-timeout="10000"
                   max-wait-time="120000"
                   auto-connect-retry="true"
                   socket-keep-alive="true"
                   socket-timeout="5000" />
</mongo:mongo>

我想在我们的BDD套件配置中覆盖Fongo,这样测试就不会使用真正的mongo了。

我有点被“蒙戈:蒙戈”的设置搞砸了。我还以为你最终会得到一个com.mongodb.Mongo呢。XML似乎指的是Spring吗?

我曾在我的BDD配置中尝试过这一点,但它不起作用:

代码语言:javascript
复制
@Bean(name = "mongoOne") @Primary
public Mongo mongoOne() { 
    return new Fongo("mongoOne").getMongo(); 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 09:06:00

在您的test application context中,您需要像这样配置fongo:

代码语言:javascript
复制
<bean name="fongo" class="com.github.fakemongo.Fongo">
    <constructor-arg value="InMemoryMongo" />
</bean>
<bean id="mongo" factory-bean="fongo" factory-method="getMongo" />

<mongo:db-factory id="mongoDbFactory" mongo-ref="mongo" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoDbFactory"/>
</bean>

它将覆盖mongoTemplate以在内存mongo实现中使用。确保您的test application context是通过测试获得的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40563567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档