在我们的一个 bean 中,我们正在内存中读取一些基于文件的数据。
从 ApplicationContextListener 执行此操作会更好,例如调用 beans init() 方法,还是仅将 @PostConstruct 添加到此 init() 方法以便容器自动执行此操作?
在我们的一个 bean 中,我们正在内存中读取一些基于文件的数据。
从 ApplicationContextListener 执行此操作会更好,例如调用 beans init() 方法,还是仅将 @PostConstruct 添加到此 init() 方法以便容器自动执行此操作?
您可以使用:
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 实现了功能)
编辑:
InitializingBean
或@PostConstruct
:每次创建 bean 时都会调用应用到 bean 的生命周期(取决于范围)在您使用上下文侦听器的情况下:
和InitializingBean
你一起:
在您的情况下,如果您使用的是没有延迟初始化的单例 bean,并且在发生故障时不需要错误恢复,则根本没有区别