spring boot 源码分析(七) 事件机制 之 SpringApplicationEvent

一、前言

前面的文章我们讲解了一下spring boot配置文件加载的相关源码分析,下面我们将从源码角度讲解一下spring boot 相关的事件机制, 本章我们将从 SpringApplicationEvent类分析一下spring boot 的事件机制。

二、类图

可以从类图中看到 SpringApplicationEvent 下有很多的实现类。我们首先从SpringApplicationEvent入手看看他实际上是如何运行的

三、源码解析

package org.springframework.boot.context.event;

import org.springframework.boot.SpringApplication;
import org.springframework.context.ApplicationEvent;

/**
 * 与SpringApplication相关的ApplicationEvent基类
 *
 * 
 */
@SuppressWarnings("serial")
public abstract class SpringApplicationEvent extends ApplicationEvent {

	private final String[] args;

	public SpringApplicationEvent(SpringApplication application, String[] args) {
		super(application);
		this.args = args;
	}

	public SpringApplication getSpringApplication() {
		return (SpringApplication) getSource();
	}

	public final String[] getArgs() {
		return this.args;
	}

}

可以看到,他的内部实际上调用了父类的一些放入 如

构造中调用了super(application) ,

getSpringApplication()中调用了 getSource();

猜你喜欢

转载自my.oschina.net/u/1178126/blog/1824188