【问题标题】:spring configuration XML files location in multiple projects - what's the best practice?spring 配置 XML 文件在多个项目中的位置 - 最佳实践是什么?
【发布时间】:2011-11-27 08:36:25
【问题描述】:

我们有多个项目,每个项目中都有 spring 配置 XML。我们正在考虑 2 个选项:

A) 使用 import "classpath:a.xml" 从类路径加载 spring 文件。在这个选项中,我们的 springjunit4classrunner 和我们的主控制台应用程序都愉快地找到了文件。但是,当您需要更改或检查某些 XML 时,它会很好地隐藏在一些不起眼的 jar 中。

B) 创建一个“conf”文件夹,并使用一些 maven 魔法从那里的所有项目中收集所有 XML 文件。这对主应用程序很好,但是单元测试不喜欢这个设置,因为显然我们在运行单元测试之前没有构建“conf”文件夹,并且他们无法找到依赖项目 XMLS...

(这是Is it bad practice to include properties/configuaration files within jars?的春季重拍)

【问题讨论】:

    标签: spring


    【解决方案1】:

    过去,我使用<import resource="classpath*:beans.xml"/> 或类似的方法,即导入类加载器可以在类路径的根目录中找到的每个beans.xml 文件。反过来,那些beans.xml 文件会根据需要导入自己的特定配置文件。

    它需要纪律,这样你就不会得到 Spring 配置的大蜘蛛网,但如果你保持简单,那么它会使集成变得非常容易,这样你就不需要维护复杂的配置文件导入列表,并且构建过程也很简单。

    您提到之前的问题很有趣,因为我不认为 Spring bean 文件是“配置”。相反,它们是应用程序的一部分——它们不能也不应该与 Java 代码分开,因为它们与 Java 代码紧密耦合。

    如果这些 bean 文件需要真正的配置,例如从一个属性文件,那么是的,那些可能应该分开。

    【讨论】:

    • hmm .. 我们已经尝试过这种方法,但它给我们带来了问题——正如你所说,它加载了每个名为“beans.xml”的文件,如果你想更改配置,jarred 版本将覆盖您更改的内容。至于我们为什么要篡改 spring 配置而不将其视为应用程序的一部分,我倾向于同意,但这就是它在这里所做的方式......
    猜你喜欢
    • 2014-03-30
    • 2010-10-31
    • 2017-08-24
    • 1970-01-01
    • 2018-08-08
    • 2021-09-04
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多