为什么我要避免代码中的对象实例化并使用Spring框架?

时间:2011-01-30 07:46:31

标签: java spring

当我们向新手解释 Spring Framework 时,我们会说我们希望避免代码中的新对象实例化,而Spring会注入依赖项。因此,我们将解释 IoC和DI。

我的问题是:

  

“为什么我们希望Spring实例化与传统的实例化相比?”

答案是更好的对象管理吗?或者只是利用IoC和DI? 请列出具体答案和解释。我想知道可能是什么原因。

4 个答案:

答案 0 :(得分:7)

我认为spring比直接对象实例化更好,因为spring配置明显与其他代码分开。这使得组件松散耦合。由于松耦合,很容易更换/修改一个组件而不影响其他组件。这使代码可维护,更重要的是 testable ,从而产生更高质量的软件。

答案 1 :(得分:1)

因为这使您专注于开发组件,并使您免于开发锅炉板代码以单向设置这些组件。

通过使用Spring,每个人都可以使用您的应用程序,并使用自己的实现替换组件,例如自己的身份验证提供程序,而不会干扰应用程序的其余部分。

此外,它使您无需编写显式配置文件处理,因为Spring配置是应用程序配置。

Spring非常适合大型应用程序部署和使用。

答案 2 :(得分:1)

谨慎使用它。 IOC非常适合测试驱动开发,因为用“测试”组件替换组件很容易。

确切了解应用程序中的组件非常重要。 IOC并不是要取代实例化的所有用途。

答案 3 :(得分:1)

恕我直言,Springs依赖注入支持并鼓励使用良好的编程实践,例如使用接口(按类型注入)和将事物模块化到不同的层而不是编写大型类(如果你曾见过“旧的一切都在Servlet中“-webapps,你可能知道我的意思了。”由于只需简单的注释(如@Autowired)或通过XML配置即可轻松完成注入服务或DAO对象,因此模块化应用程序既快速又简单。

对于通过Spring处理所有内容的实例化,我仍然 非常有用,你仍然可以使用 new 创建对象,如果对象是这样的,Spring不需要知道它们,或者只是在某个地方使用它们来在层之间移动数据等。

有些人抱怨使用Spring进行xml配置。使用Spring 3.0,新注释可以非常快速地进行编码和简单配置,并且您的XML配置文件只需要包含软件的实际配置,而不是所有实际上永远不会更改的注入和“配置”。例如,几年前,我们使用Spring 2.5构建了一个相对简单的内部应用程序(它确实有一些注释,但我们没有使用它们),并且xml配置文件的大小总共超过1000行快速。目前,我们有一个使用Spring 3.0的项目,XML文件只包含100行,这些内容在构建项目后实际上需要配置。