gpt4 book ai didi

java - 如何重构我的 servlet 以利用依赖注入(inject)?

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:26 24 4
gpt4 key购买 nike

我正在使用 Tomcat 6.0.33 和 Java 6。我有这个 servlet ...

public class SaveXmlServlet extends HttpServlet {

private CacheService cacheService;

public void init(ServletConfig config) throws ServletException {
cacheService = CacheServiceLocator.cacheService();
} // init

如何重新设计我的 servlet 来...

  1. 利用依赖注入(inject),以便像mockito这样的模拟框架可以注入(inject)自己的“cacheService”实现
  2. 保证我的jvm中只有一个cacheservice实例。现在,“CacheServiceLocator.cacheService()”行保证了这一点。

?我没有使用(或允许使用)Spring 或 Guice 等框架。感谢您对重构此问题的任何想法。谢谢,-戴夫

最佳答案

有一些选择,但我建议惩罚那些不“让”你使用框架的人。两个快手;我确信还有其他人。我会先走打屁股路线。

您可以使用 EasyMock/Mockito 和 PowerMock 的组合来模拟静态类。从技术上讲,您根本不需要更改任何内容即可获得您想要的测试行为。

servlet 初始化参数或 JNDI 资源提供的类名可用于创建缓存定位器的实例。为其提供 setter 允许一个单元/等。测试将其设置在类上。

关于java - 如何重构我的 servlet 以利用依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268558/

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