gpt4 book ai didi

spring - 如何覆盖在应用程序上下文中定义的单个bean

转载 作者:行者123 更新时间:2023-12-04 13:34:04 25 4
gpt4 key购买 nike

我有一个访问外部Web服务的Web应用程序。我正在为Web应用程序编写一个自动验收测试套件。我不想调用外部Web服务,因为它有严重的开销,我想模拟此Web服务。如何在不更改Web应用程序的应用程序上下文的情况下实现这一目标?我们最近迁移到了Spring 3.1,因此我很想使用新的环境功能。这些新功能是否可以帮助我覆盖此单个Web服务并使应用程序上下文保持原样?

最佳答案

我将使用Spring @Profile功能,我假设它是您所指的“环境功能”。

例如:

@Service @Profile("dev")
public class FakeWebService implements WebService {
}

@Service @Profile("production")
public class ExternalWebService implements WebService {
}

编辑

并指定要在测试中使用的配置文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/app-config.xml")
@ActiveProfiles("dev")
public class MyAcceptanceTest {
}

有关更多详细信息,请参见Spring文档的 this section

有几种方法可以在生产环境中设置 Activity 配置文件,但是我之前使用的方法是在web.xml中:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>spring.profiles.active</param-name>
<param-value>production</param-value>
</init-param>
</servlet>

关于spring - 如何覆盖在应用程序上下文中定义的单个bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com