如果在构造函数中可以完成相同的操作,为什么要使用init-method属性?

时间:2015-01-24 17:44:02

标签: java spring

我对init-method属性的可用性感到有点困惑。任何人都可以为我提供一个用例,在构造函数中做某些事情是没有意义的,init-method属性是否合适?

根据我的理解,在定义bean时会使用init-method属性,如果在bean创建时需要执行某些任务,但这也可以在bean的构造函数中完成。

2 个答案:

答案 0 :(得分:2)

init-method有几个用例。最重要的是当类初始化逻辑需要设置几个属性时,它们不能通过构造函数设置。在这种情况下,流程将是:

  1. 构造bean(默认构造函数)
  2. 通过setter方法注入属性
  3. 运行init方法
  4. init-method的另一个有用案例是现代化遗留代码。旧代码库中的某些类只是有这些方法,无论好坏的原因。 Spring不是强迫您重写代码,而是为您提供了一种简单的方法来使用它。

答案 1 :(得分:1)

我想在调用init时,所有通过属性进行的注入都已到位。