敢说敢作敢为, 无怨无恨无悔。这篇文章主要讲述SpringBoot监听器ApplicationListener的使用-监听ApplicationReadyEvent事件相关的知识,希望能为你提供帮助。
参考:http://www.shareniu.com/article/73.htm
一.需求是想将我的写一个方法能在项目启动后就运行,之前使用了redis的消息监听器,感觉可以照着监听器这个思路做,于是想到了sringboot的监听器
二.目前spring boot中支持的事件类型如下
- ApplicationFailedEvent:该事件为spring boot启动失败时的操作
- ApplicationPreparedEvent:上下文context准备时触发
- ApplicationReadyEvent:上下文已经准备完毕的时候触发
- ApplicationStartedEvent:spring boot 启动监听类
- SpringApplicationEvent:获取SpringApplication
- ApplicationEnvironmentPreparedEvent:环境事先准备
第一:首先定义一个自己使用的监听器类并实现ApplicationListener接口。
@Componen
public class MessageReceiver implements ApplicationListener< ApplicationReadyEvent> { private Logger logger = LoggerFactory.getLogger(MessageReceiver.class); private UserService userService = null; @Override public void onApplicationEvent(ApplicationReadyEvent event) { ConfigurableApplicationContext applicationContext = event.getApplicationContext(); //解决userService一直为空 userService = applicationContext.getBean(UserService.class);
System.out.println("name"+userService.getName()); } }
第二:通过SpringApplication类中的addListeners方法将自定义的监听器注册进去
public class Application { public static void main(String[] args) { SpringApplication application = new SpringApplication(Application.class); application.addListeners(new MessageReceiver()); application.run(args); } }
启动项目
【SpringBoot监听器ApplicationListener的使用-监听ApplicationReadyEvent事件】
推荐阅读
- DataFrame.apply()
- Android 7.0 行为变更
- yum安装提示Another app is currently holding the yum lock; waiting for it to exit...
- 简单的Android 菜单
- MIUI8以及ViVO X9上在Android Studio运行出错集及其解决方案
- Azure Managed Disk 共享不灵,EventGrid + LogicApp 来搞
- Android内存优化相关
- 2017-2018-2 20165233 实验四 Android程序设计
- 将app现有的icon转化成圆角icon