深入SpringBoot源码(八)SpringApplication与Environment绑定的前置工作(中)

在这里插入图片描述
在这里插入图片描述
SpringApplicationRunListeners有以下几个成员字段:

	//org.apache.commons.logging.Log
	private final Log log;

	private final List<SpringApplicationRunListener> listeners;

	private final ApplicationStartup applicationStartup;

SpringApplicationRunListeners可看作是SpringApplicationRunListener的组合模式实现,SpringApplicationRunListener。SpringApplicationRunListener是SpringApplication运行方法的监听器,SpringApplication每次运行都会创建一个新的SpringApplicationRunListener实例。
在这里插入图片描述
ApplicationStartup 来标记应用程序启动期间的步骤,并收集有关执行上下文或其处理时间的数据。

public interface ApplicationStartup {
   
   

	/**
	 * 默认“无操作”ApplicationStartup 实现。
	 * 此变体旨在最小化开销,并且不记录数据。
	 */
	ApplicationStartup DEFAULT = new DefaultApplicationStartup();

	/**
	 * 创建一个新步骤并标记它的开始。步骤名称描述当前操作或阶段。
	 * 这个技术名称应该是“.”命名空间,并且可以在应用程序启动期间重用于描述同一步骤的其他实例。
	 * @param name 步骤名称	 
	 */
	StartupStep start(String name);

}

在这里插入图片描述
默认“无操作”ApplicationStartup 实现。此变体旨在最小化开销,并且不记录事件。

class DefaultApplicationStartup implements ApplicationStartup {
   
   

	private static final DefaultStartupStep DEFAULT_STARTUP_STEP = new DefaultStartupStep();

	@Override
	public DefaultStartupStep start(String name) {
   
   
		return DEFAULT_STARTUP_STEP;
	}


	static class DefaultStartupStep implements StartupStep {
   
   

		private final DefaultTags TAGS = new DefaultTags();

		@Override
		public String getName() {
   
   
			return "default";
		}

		@Override
		public long getId() {
   
   
			return 0L;
		}

		@Override
		public Long getParentId() {
   
   
			return null;
		}

		@Override
		public Tags getTags() {
   
   
			return this.TAGS;
		}

		@Override
		public StartupStep tag(String key, String value) {
   
   
			return this;
		}

		@Override
		public StartupStep tag(String key, Supplier<String> value) {
   
   
			
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值