是否应该从Spring配置中注入所有应用程序设置?

时间:2011-04-02 09:22:40

标签: spring configuration

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

在我的情况下,目标类没有在spring.xml中配置,它可能需要一些重构来传递目标类的父类的设置,所以如果可以制作目标类,我就会徘徊(或某些相关类)读取外部属性文件。

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

2 个答案:

答案 0 :(得分:3)

传统代码是许多Spring应用程序的现实,因此您必须对这些事情保持现实。有时,正如你所说,即使你愿意,也要注入所有是不切实际的。

由于IoC的一个主要优点是易于测试,我的建议是让您的类使用一种也可以轻松测试的机制来获取其配置。换句话说 - 不要使用静态来获取配置。

所以,只要你仍然可以获得IoC带来的一些优势,我就不会对那些没有“弹性”的东西感到太过垂涎。

答案 1 :(得分:0)

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

希望这能回答你的问题。