Home > Java > javaTutorial > SpringBoot listener pattern example analysis

SpringBoot listener pattern example analysis

王林
Release: 2023-05-12 21:40:18
forward
1103 people have browsed it

1. Event ApplicationEvent

ApplicationEvent is an abstract class. Its inheritance relationship is expanded on the idea as shown in the figure:

SpringBoot listener pattern example analysis

##It can be seen that the event types defined by SpringBoot is extremely rich.

2. Listener ApplicationListener

ApplicationListener is an interface. We can also define our own listener by implementing this interface, which can be loaded in a similar way to the event initializer.

@FunctionalInterface
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
	/**
	 * Handle an application event.
	 * @param event the event to respond to
	 */
	void onApplicationEvent(E event);
}
Copy after login

We can see that in the code it accepts an event generic mentioned above, which represents the event that this listener is concerned about;

There is also a way to implement a listener, That is, implement the SmartApplicationListener interface. SmartApplicationListener inherits the ApplicationListener interface. By implementing the listener in this way, you can register multiple events of interest at the same time. You only need to implement the supportsEventType method of the interface;

public interface SmartApplicationListener extends ApplicationListener<ApplicationEvent>, Ordered {
	/**
	 * Determine whether this listener actually supports the given event type.
	 * @param eventType the event type (never {@code null})
	 */
	boolean supportsEventType(Class<? extends ApplicationEvent> eventType);
	/**
	 * Determine whether this listener actually supports the given source type.
	 * <p>The default implementation always returns {@code true}.
	 * @param sourceType the source type, or {@code null} if no source
	 */
	default boolean supportsSourceType(@Nullable Class<?> sourceType) {
		return true;
	}
	/**
	 * Determine this listener&#39;s order in a set of listeners for the same event.
	 * <p>The default implementation returns {@link #LOWEST_PRECEDENCE}.
	 */
	@Override
	default int getOrder() {
		return LOWEST_PRECEDENCE;
	}
}
Copy after login

3. Event Broadcasting ApplicationEventMulticaster

ApplicationEventMulticaster is an interface that defines methods such as adding listeners, deleting listeners, and propagating events;

SpringBoot implements the event broadcaster SimpleApplicationEventMulticaster for us. The inheritance relationship is as shown in the figure Shown:

SpringBoot listener pattern example analysis

The above is the detailed content of SpringBoot listener pattern example analysis. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template