在我们的一个bean中,我们正在内存中读取一些基于文件的数据。
从ApplicationContextListener执行此操作会更好吗调用bean的init()方法,或者只是将@PostConstruct添加到这个init()方法中,这样容器会自动执行吗?
答案 0 :(得分:0)
您可以使用:
1. @PostConstruct
2. InitializingBean
界面
3. <bean class="your bean class" init-method="your init method"/>
属性:init-method :要调用的自定义初始化方法的名称 设置bean属性。该方法必须没有参数, 但可能会抛出任何异常。这是另一种选择 实现Spring的InitializingBean接口或标记一个 使用PostConstruct注释的方法。
它们是另一种选择:如果你的程序是完全注释的,那就去注释,如果用XML去XML(我不喜欢混合,你不需要问自己是否实现了带有annot或xml的特性)< / p>
编辑:
InitializingBean
或@PostConstruct
:每次创建bean时都会调用适用于bean的生命周期(取决于范围)在您使用上下文侦听器的情况下:
InitializingBean
你:
在您的情况下,如果您使用的是没有lazy-init的单例bean,并且在发生故障时不需要进行错误恢复,则根本没有差异