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

1、前言java

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

2、类图app

能够从类图中看到 SpringApplicationEvent 下有不少的实现类。咱们首先从SpringApplicationEvent入手看看他其实是如何运行的源码分析

3、源码解析this

SpringApplicationEventspa

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;
	}

}

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

1. SpringApplicationEvent(SpringApplication application, String[] args)事件

中调用了super(application) get

2. getSpringApplication(SpringApplication application, String[] args)源码

中调用了 getSource();

相关文章
相关标签/搜索