我通常希望在服务器启动时加载一些公共数据,这类数据使用率比较高,为了避免使用时再去读取数据库,我们可以在容器加载完成后直接将这类数据读取到缓存中。
这就需要用到监听器,监听spring容器初始化完成事件。spring的监听事件ApplicationEvent的子类一共有8个,这里简单介绍其中四个:
序号 | spring内置事件 & 描述 |
1 | ContextRefreshedEvent
ApplicationContext被初始化或刷新时,该事件被发布。这也可以在ConfigurableApplicationContext使用refresh()方法,来触发。该事件被触发时,spring容器已经初始化完成,不会有找不到Bean的情况。 |
2 | ContextStartedEvent
当使用ConfigurableApplicationContext 中start()方法启动ApplicationContext时,该事件被发布。你可以查询数据库,或者重启任何已经停止的服务。 |
3 | ContextStoppedEvent
当使用ConfigurableApplicationContext 中stop()方法停止ApplicationContext时,该事件被发 |