0

Application-context.xml 在 web 模块中

pom
- 用户
-具有业务逻辑和 daos 的各种其他模块
- Web仅依赖于服务层。只和你的朋友说话。

Web 将用户作为依赖项。我(不应该)不能让依赖项反过来,因为它是循环的,所以我如何使用 Web 中的应用程序上下文进行测试?

我是否:
1. 复制数据源信息的应用程序上下文?(代码味道)
2. 将数据库应用程序上下文放在依赖链底部的休眠依赖项目中?
3. 其他答案?

2 号似乎是最好的选择。当一切都在一个服务模块中时,我让测试工作,但我试图获得更多的模块化,所以我将用户特定的服务重构为一个单独的模块。

感谢您的任何想法。实际上,我选择在 web 和模块之间添加一个层,也称为服务,而不是在模块层中添加服务。我不认为这是典型的,但它提供了更好的信息隐藏并有助于强制打开/关闭。它与这种情况无关,所以我没有包括它。

工具:

  • 智能 11
  • 朱尼特
  • Maven 2
  • 休眠 3
  • 春天 3
  • MySql5.5
4

2 回答 2

0

我最终在单元和网络之间使用了一个服务模块来在那里存储数据库上下文。Web 依赖于它,并且 Web 级别的应用程序上下文包括模块上下文和测试一样。我正在该层上进行服务级别集成测试。单元测试将使用模拟对象或 hql 来消除单元本身之外的任何内容。

于 2012-11-18T05:03:03.670 回答
0

将执行用户模块依赖注入的上下文文件放在模块本身内。请记住,在 spring 中,您可以拥有很多上下文文件,并且可以导入它们。

要了解这背后的原因,请问问自己:我的应用程序的 Web 部分是否需要数据库,还是后端需要数据库?

于 2012-11-17T23:34:25.413 回答