springboot 监听
时间: 2023-10-17 13:25:31 浏览: 51
Spring Boot提供了多种方式来监听应用程序的各种事件。以下是几种常见的监听方式:
1. ApplicationListener接口:通过实现该接口并重写onApplicationEvent方法来监听应用程序的各种事件。可以通过添加@Component注解将监听器纳入Spring IoC容器管理。
示例代码:
```java
@Component
public class MyApplicationListener implements ApplicationListener<ApplicationEvent> {
@Override
public void onApplicationEvent(ApplicationEvent event) {
// 处理事件
}
}
```
2. @EventListener注解:通过在方法上添加@EventListener注解,可以直接监听特定类型的事件。
示例代码:
```java
@Component
public class MyEventListener {
@EventListener
public void handleEvent(MyCustomEvent event) {
// 处理事件
}
}
```
3. ServletContextListener接口:通过实现该接口并重写contextInitialized和contextDestroyed方法来监听Web应用程序的启动和关闭事件。
示例代码:
```java
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// Web应用程序启动时执行
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// Web应用程序关闭时执行
}
}
```
4. Spring Boot提供的其他监听器:如ApplicationStartedEvent、ApplicationReadyEvent等,可以通过在配置类中注册来监听特定事件。
示例代码:
```java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MyApp.class);
app.addListeners(new MyApplicationStartedListener());
app.run(args);
}
}
public class MyApplicationStartedListener implements ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
// 应用程序启动完成时执行
}
}
```
以上是常见的Spring Boot监听方式,根据具体需求选择适合的方式进行监听。