【问题标题】:Should all application settings be injected from the Spring configuration?是否应该从 Spring 配置中注入所有应用程序设置?
【发布时间】:2011-04-02 09:22:39
【问题描述】:

我有一个基于 Spring 的小型应用程序,我的一个类需要额外的配置数据。通常我会通过PropertyPlaceholderConfigurer 解决这个问题并通过设置。

在我的情况下,目标类未在spring.xml 中配置,并且可能需要进行一些重构才能将设置传递给目标类的父类,所以我在徘徊是否可以制作目标类(或一些相关的类)读取外部属性文件。

这是一个好方法还是违反了 Spring 的原则?或者换句话说:所有外部配置应该从应用程序配置中注入(spring.xml)还是可以在应用程序生命周期的后期读取?

【问题讨论】:

    标签: spring configuration


    【解决方案1】:

    遗留代码是许多 Spring 应用程序的现实,因此您必须对这些事情持现实态度。有时,正如您所说,注入 所有内容 是不切实际的,即使您愿意。

    由于 IoC 的主要优势之一是易于测试,因此我的建议是让您的班级使用一种易于测试的机制来获取其配置。换句话说 - 不要使用静态来获取你的配置。

    因此,只要您仍然可以获得 IoC 带来的一些优势,我就不会太在意那些不“有弹性”的事情。

    【讨论】:

      【解决方案2】:

      我不知道一般是如何处理的。我目前正在做一个项目,我们实现 Spring 来配置不同的组件并让它们由 Spring 实例化。在我们开始使用 Spring 之前,我们需要确保主程序创建所有组件的顺序。除此之外,我们仍然使用app.config 来指定其他信息,例如超时时间、数据库的连接字符串等。一个静态组件用于在程序启动时读取配置,其他组件可以引用该实例以获取所需的信息。

      希望这能回答你的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多