小编典典

Bean初始化完成后如何调用方法?

spring

我有一个用例,需要在ApplicationContext加载一次时在Bean中调用一次(非静态)方法。如果我为此使用MethodInvokingFactoryBean可以吗?还是我们有更好的解决方案?

附带说明一下,我使用ConfigContextLoaderListener在Web应用程序中加载应用程序上下文。并且想要,如果实例化了bean’A’,则只需调用一次methodA()。

如何做到这一点呢?


阅读 700

收藏
2020-04-12

共2个答案

小编典典

你可以使用类似:

<beans>
    <bean id="myBean" class="..." init-method="init"/>
</beans>

实例化bean时,它将调用“ init”方法。

2020-04-12
小编典典

以其他答案扩展@PostConstruct建议,我认为这确实是最好的解决方案。

  • 它使你的代码与Spring API分离(@PostConstruct位于javax。*中)
  • 它显式地将init方法注释为需要初始化Bean的东西
  • 你不需要记住将init-method属性添加到Spring bean定义中,spring会自动调用该方法(假设你在上下文中的其他任何地方注册了注解配置选项)。
2020-04-12