实现接口是紧密耦合的



它在这里说

我不建议使用初始化Bean和DisposableBean 接口,因为它会将您的代码紧密耦合到 Spring

有意义吗?我认为这与紧密耦合正好相反。

在这里,作者的意思是,如果你让你的应用程序类实现 InitializingBean 和 DisposableBean 接口(这是特定于 spring 的接口),那么你就是将你的代码与 spring 耦合。将来,如果 spring 重命名这些接口(尽管不太可能),或者您停止使用 spring,您将不得不更新您的类代码。

相反,如果你在 bean 配置中使用 init-method 和 destroy-method,你的类是独立于 spring 的,也就是说,你的类在 spring 特定的类上没有缺陷。

希望对您有所帮助。

我认为这里的想法是不对您的代码创建任何依赖来启动注释,请参阅

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

当你显式声明这种依赖关系时,你正在将你的代码耦合到弹簧罐。

在另一个示例(http://www.mkyong.com/spring/spring-init-method-and-destroy-method-example/)中,它显示了如何使用 XML 中定义的约定方法。没有弹簧进口。

最新更新