Spring @PostConstruct与init-method属性
在Spring XMLconfiguration中使用@PostConstruct
注解和声明与init-method
相同的方法是否有区别?
实际上我不认为有什么区别,但是他们的工作方式有优先权。 @PostConstruct
, init-method
是BeanPostProcessors。
-
@PostConstruct
是一个JSR-250注释,而init-method
是Spring的一种初始化方法。 - 如果你有一个
@PostConstruct
方法,在初始化方法被调用之前,这个方法会被首先调用。 - 如果你的bean实现了InitializingBean并且覆盖了
afterPropertiesSet
,那么首先调用@PostConstruct
,然后是afterPropertiesSet
,然后是init-method
。
有关更多信息,可以查看Spring的参考文档 。
没有真正的区别。 这取决于你如何configuration你的系统,这是个人select的问题。 我自己,我更喜欢使用@PostConstruct
注释为我自己的代码(因为只有在调用该方法后才正确configurationbean),并且在从不支持Spring的库实例化bean时使用init-method
(不能在其中应用注释当然!),但是我完全可以理解那些想要这样做的人。
@postconstruct不是spring的一部分。 它是javax包的一部分。 两者都是一样的。 使用init-method我们需要在xml文件中添加。如果你使用@postconstruct,那么不需要在xml中添加。 看看下面的文章。