【发布时间】:2012-07-07 23:54:14
【问题描述】:
我来自.NET背景,使用过Unity、Ninject、Castle Windsor等依赖注入容器。最近开始学习使用Spring对Java的依赖注入能力。
在学习 Spring 时,我发现可以在 bean XML 配置中指定“init-method”和“destroy-method”的概念。
指定“init-method”的目的似乎是在创建 bean 时进行您可能想做的任何设置。这就是我感到困惑的地方。为什么您需要一个单独的方法来执行设置,而不是像普通/良好的面向对象设计那样仅使用构造函数来执行对象所需的任何设置?
换句话说,如果一个类需要一个依赖项,它不应该被注入到构造函数中吗,你知道已经被调用了,而对象可以在没有的状态下存在称之为“初始化方法”?
【问题讨论】:
-
OP 正试图与已回答的人进行辩论。这不是 SO 的预期用途。
-
呃,是的。 Stackoverflow 旨在将最佳答案冒泡到顶部。确定哪些答案是最好的是社区的目的。否则评论系统将不存在。
-
常见问题解答是这样说的:“如果您提出问题的动机是“我想参加关于 ______ 的讨论”,那么您不应该在这里提问。”。您的问题(对我而言)似乎是其中之一。无论如何,我不会参加:-)
-
对;我不是在寻找关于这个问题的讨论。我正在评论您的答案,该答案没有解决问题,而是回答了“为什么需要初始化方法”。这不是被问到的,而是您的答案谈论的是与使用 init-method 和可用的构造函数注入不对应的事情。
-
"它为什么存在" != "你为什么要使用它"。我知道这是机械意图,问题提到了这一点。
标签: java spring dependency-injection