码迷,mamicode.com
首页 > 编程语言 > 详细

Spring 中的事件

时间:2020-03-14 01:08:53      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:ice   rgs   图片   print   alt   内容   ace   tis   场景   

 

示例:

1.定义一个Listener 实现了ApplicationListener 接口

@Component
public class MyTestListener implements ApplicationListener{

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        System.out.println("向zookeeper注册暴露的服务...");
    }
}

 

2.applicationContext.xml 添加如下内容

<context:annotation-config />
<context:component-scan base-package="com.event" />

 

3.测试

public class SpringEventTest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    }
}

 

控制台输出:

技术图片

 

源码分析

1.先进行断点调试

技术图片

 

2.Debug 运行测试类

 

3.通过 Debug 线程栈分析源码执行过程

技术图片

 

 

 

 

 

 

应用场景

 

1.dubbo 框架中的 ServiceBean 
ServiceBean 实现了 ApplicationListener 接口。当服务端执行main方法时(其实也就是执行refresh方法),在不做代码入侵的情况下,dubbo通过ServiceBean 中的 onApplicationEvent 向注册中心注册暴露的服务。
 
2.mybatis框架中的 SqlSessionFactoryBean 

 

Spring 中的事件

标签:ice   rgs   图片   print   alt   内容   ace   tis   场景   

原文地址:https://www.cnblogs.com/caoxb/p/12490111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!