Spring @PostConstruct与init-method属性

在Spring XMLconfiguration中使用@PostConstruct注解和声明与init-method相同的方法是否有区别?

实际上我不认为有什么区别,但是他们的工作方式有优先权。 @PostConstructinit-method是BeanPostProcessors。

  1. @PostConstruct是一个JSR-250注释,而init-method是Spring的一种初始化方法。
  2. 如果你有一个@PostConstruct方法,在初始化方法被调用之前,这个方法会被首先调用。
  3. 如果你的bean实现了InitializingBean并且覆盖了afterPropertiesSet ,那么首先调用@PostConstruct ,然后是afterPropertiesSet ,然后是init-method

有关更多信息,可以查看Spring的参考文档 。

没有真正的区别。 这取决于你如何configuration你的系统,这是个人select的问题。 我自己,我更喜欢使用@PostConstruct注释为我自己的代码(因为只有在调用该方法后才正确configurationbean),并且在从不支持Spring的库实例化bean时使用init-method (不能在其中应用注释当然!),但是我完全可以理解那些想要这样做的人。

@postconstruct不是spring的一部分。 它是javax包的一部分。 两者都是一样的。 使用init-method我们需要在xml文件中添加。如果你使用@postconstruct,那么不需要在xml中添加。 看看下面的文章。

http://answersz.com/spring-postconstruct-and-predestroy/