Spring Boot与Spring Cloud中的事件与Spring 事件的关系

2022年7月9日 254点热度 0人点赞 0条评论
本篇我们来看一下Spring Boot与Spring Cloud中的事件与Spring 事件的关系。这里我总结了以下内容:

图片

图片

接下来我们通过查看源码的方式一起来看一下它们之间的关系。
/* * Copyright 2012-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
package org.springframework.boot.context.event;
import org.springframework.boot.SpringApplication;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationListener;import org.springframework.core.env.Environment;
/** * Event published as early as conceivably possible as soon as a {@link SpringApplication} * has been started - before the {@link Environment} or {@link ApplicationContext} is * available, but after the {@link ApplicationListener}s have been registered. The source * of the event is the {@link SpringApplication} itself, but beware of using its internal * state too much at this early stage since it might be modified later in the lifecycle. * * @author Phillip Webb * @author Madhura Bhave * @since 1.5.0 */@SuppressWarnings("serial")public class ApplicationStartingEvent extends SpringApplicationEvent {
/** * Create a new {@link ApplicationStartingEvent} instance. * @param application the current application * @param args the arguments the application is running with */ public ApplicationStartingEvent(SpringApplication application, String[] args) { super(application, args); }
}

/* * Copyright 2012-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
package org.springframework.boot.context.event;
import org.springframework.boot.SpringApplication;import org.springframework.context.ApplicationEvent;
/** * Base class for {@link ApplicationEvent} related to a {@link SpringApplication}. * * @author Phillip Webb */@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; }
}
通过源码我们可以发现SpringBoot中的事件其实就是Spring的事件。

38540Spring Boot与Spring Cloud中的事件与Spring 事件的关系

这个人很懒,什么都没留下

文章评论