【问题标题】:How to load a spring configuration from another dependency module如何从另一个依赖模块加载弹簧配置
【发布时间】:2017-02-01 03:08:21
【问题描述】:

我正在开发一个包含子模块的 spring 应用程序,大致如下所示:

项目

|-- module1
||-- src
||      -- main
||       |-- java
||       -- resources
||           |-- null
||   -- pom.xml

模块 2:

|-- module2
|   |-- src
|   |   -- main
|   |       |-- java
|   |       -- resources
|   |           -- spring-dao.xml
|   -- pom.xml
-- pom.xml

现在,我正在使用 Juit4 测试模块 1,而我必须在模块 1 中提供 spring-dao.xml,如下所示: @ContextConfiguration({"classpath*:spring/spring-dao.xml"})

但是spring配置文件(spring-dao.xml)在module2中,module2依赖于module1。这导致我无法通过 module1 的 pom.xml 将 module2.jar 放入 module1,因为它会导致模块循环。

如何测试模块 1?

【问题讨论】:

    标签: java spring junit4


    【解决方案1】:

    我不确定我是否完全理解,但这是我的阅读方式:

    模块 1 依赖于模块 2,模块 2 依赖于模块 1。

    简短的回答是你不能这样做。模块背后的想法是隔离不相关的代码。我经常用生成的代码来做这件事,把它放在一个单独的模块中。生成的代码不应该对我的主应用程序有任何依赖,但我的主应用程序依赖于生成的代码。

    我能想到几个解决方案:

    如果这两个模块相互依赖程度很高,则应将它们重构为单个模块。根据您的描述,这似乎是最好的方法。

    如果仍然不希望这样做,请创建第三个模块来保存两个项目之间的公共依赖关系。

    【讨论】:

    • 你理解正确。简短的问题是模块2在项目中依赖于模块1(模块1不依赖于模块2)。然后我需要对module1进行单元测试,但是我必须将属于module2的configure.xml文件提供给module1才能完成单元测试。第三个模块mabey是一个解决方案。但是我只需要一个configure.xml文件,是否有一个轻量级的方法来解决这个问题。
    • 如果只是一个单独的文件用于测试并且只做测试,那么创建一个测试特定的配置文件就可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2010-10-19
    • 2013-05-08
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    相关资源
    最近更新 更多