欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 前端技术 > javascript >内容正文

javascript

springboot applicationlistener监听器的使用-尊龙游戏旗舰厅官网

发布时间:2025/1/21 javascript 14 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 springboot applicationlistener监听器的使用-监听applicationreadyevent事件 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

springboot监听器

applicationcontext事件机制是观察者设计模式的实现,通过applicationevent类和applicationlistener接口,可以实现applicationcontext事件处理。
如果容器中有一个applicationlistener bean,每当applicationcontext发布applicationevent时,applicationlistener bean将自动被触发。这种事件机制都必须需要程序显示的触发。

spring boot中支持的事件类型如下:

  • applicationfailedevent:该事件为spring boot启动失败时的操作
  • applicationpreparedevent:上下文context准备时触发
  • applicationreadyevent:上下文已经准备完毕的时候触发
  • applicationstartedevent:spring boot 启动监听类
  • springapplicationevent:获取springapplication
  • applicationenvironmentpreparedevent:环境事先准备

springboot监听applicationreadyevent事件用例

自定义监听器

解决mybatis多数据源,可以在项目启动的时候候指定数据源

package com.sl.listener;import org.mybatis.spring.sqlsessiontemplate; import org.mybatis.spring.support.sqlsessiondaosupport; import org.springframework.beans.factory.annotation.value; import org.springframework.boot.context.event.applicationreadyevent; import org.springframework.context.applicationlistener; import org.springframework.context.configurableapplicationcontext; import org.springframework.stereotype.component;import javax.annotation.resource; import java.util.arrays; import java.util.list; import java.util.map; import java.util.stream.stream;/*** @author shuliangzhao* @title: myapplicationeventlistener* @projectname spring-boot-learn* @description: todo* @date 2019/10/17 20:24*/ @component public class myapplicationeventlistener implements applicationlistener<applicationreadyevent> {@resource(name = "targetsqlsessiontemplate")private sqlsessiontemplate targetsqlsessiontemplate;@resource(name = "midsqlsessiontemplate")private sqlsessiontemplate midsqlsessiontemplate;//包名 不同的包名以逗号分隔@value("{taget.source}")private string targetsource;//包名@value("{mid.source}")private string midsource;@overridepublic void onapplicationevent(applicationreadyevent applicationreadyevent) {configurableapplicationcontext applicationcontext = applicationreadyevent.getapplicationcontext();map<string, sqlsessiondaosupport> beanmap = applicationcontext.getbeansoftype(sqlsessiondaosupport.class);string[] targetscanpath = targetsource.split(",");string[] midscanpath = midsource.split(",");list<string> targetlist = arrays.aslist(targetscanpath);list<string> midlist = arrays.aslist(midscanpath);beanmap.foreach((k,v) -> {string name = v.getclass().getpackage().getname();if (targetlist.contains(name)) {v.setsqlsessiontemplate(targetsqlsessiontemplate);}else if (midlist.contains(name)) {v.setsqlsessiontemplate(midsqlsessiontemplate);} } );} }

总结

以上是尊龙游戏旗舰厅官网为你收集整理的springboot applicationlistener监听器的使用-监听applicationreadyevent事件的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图