我来自 .NET 背景,使用过 Unity、Ninject、Castle Windsor 等依赖注入容器。最近开始学习使用 Spring 的 Java 依赖注入功能。
在学习 Spring 时,我发现可以在 bean XML 配置中指定“init-method”和“destroy-method”的概念。
指定“init-method”的目的似乎是在创建 bean 时进行您可能想要做的任何设置。这就是我感到困惑的地方。为什么你需要一个单独的方法来执行设置,而不是仅仅使用构造函数来执行对象所需的任何设置,就像正常/良好的面向对象设计所要求的那样?
换句话说,如果一个类需要一个依赖项,它不应该被注入到构造函数中,你知道它已经被调用了,而对象可以在没有调用它的状态下存在'init-method'?