springboot run方法里的afterRefresh作用
时间: 2023-11-16 22:50:55 浏览: 29
在Spring Boot应用程序中,run方法中的afterRefresh方法用于在ApplicationContext刷新之后执行操作。它是一个回调方法,用于执行一些初始化操作或将一些特定的bean注册到应用程序上下文中。例如,可以在这个方法中注册一些自定义的拦截器或过滤器,或者执行一些与应用程序相关的初始化操作。在这个方法中可以访问ApplicationContext对象,以便进行任何必要的操作。
相关问题
springboot run方法里的afterRefresh作用以及使用
Spring Boot的run方法中的afterRefresh方法是在Spring应用程序上下文被刷新之后执行的一段代码块。它的作用是在应用程序上下文被更新之后,执行一些自定义的初始化操作,例如添加额外的属性、启动后台任务等。这个方法可以方便地扩展Spring Boot应用程序的初始化和启动过程,使得开发者可以更加灵活地控制应用程序的行为。
使用afterRefresh方法需要继承SpringApplication类,并重写run方法。在重写的run方法中,可以调用父类的run方法,并在其后面添加自己的afterRefresh方法。例如:
```java
public class MyApplication extends SpringApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
super.run(args);
doAfterRefresh();
}
private void doAfterRefresh() {
// 在应用程序上下文被刷新之后执行一些自定义的初始化操作
}
}
```
在这个例子中,我们重写了SpringApplication的run方法,并在其后面添加了doAfterRefresh方法。当我们启动这个应用程序时,SpringApplication会自动调用这个重写的run方法,并在应用程序上下文被刷新之后执行doAfterRefresh方法。
springBoot 的启动流程
Spring Boot 的启动流程如下:
1. 当你运行 Spring Boot 应用程序时, 会启动内嵌的 Tomcat 容器.
2. 当 Tomcat 启动时, 会调用 SpringBootServletInitializer 的 onStartup 方法, 并传入 ServletContext.
3. onStartup 方法会创建 SpringApplication 对象, 并调用 run 方法.
4. run 方法会创建并运行 SpringApplicationRunListeners.
5. SpringApplicationRunListeners 会回调 SpringApplicationRunListener 的 starting 方法.
6. starting 方法会创建并配置 ApplicationArguments 对象.
7. starting 方法会调用 SpringApplication.prepareContext 方法, 该方法会创建并配置 ApplicationContext.
8. starting 方法会调用 SpringApplication.load 配置并加载所有的 Bean.
9. SpringApplicationRunListeners 会回调 SpringApplicationRunListener 的 environmentPrepared 方法.
10. environmentPrepared 方法会调用 SpringApplication.afterRefresh 方法.
11. afterRefresh 方法会调用 SpringApplicationRunListeners 的 finished 方法.
12. finished 方法会调用 ApplicationRunner 或者 CommandLineRunner 接口的 run 方法.
13. 应用程序就启动完成了.