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();

相關文章
相關標籤/搜索