run
Spring的run
方法是Spring Boot应用程序的入口方法,其主要作用是启动Spring Boot应用程序并初始化Spring容器。下面是run
方法的执行流程:
- 首先,
run
方法会创建一个SpringApplication
对象,并设置其源(即主配置类)和启动参数。 - 接着,
run
方法会调用SpringApplication
对象的listeners
方法,将所有注册的监听器添加到应用程序上下文中。 - 然后,
run
方法会创建一个ConfigurableApplicationContext
实例,并将其保存在一个局部变量中。 - 接着,
run
方法会调用SpringApplication
对象的prepareContext
方法,该方法负责为应用程序上下文设置一些必要的属性和环境变量。 - 然后,
run
方法会调用SpringApplication
对象的applyInitializers
方法,该方法负责应用所有注册的ApplicationContextInitializer对象。 - 接着,
run
方法会调用SpringApplication
对象的listeners
方法,将ContextRefreshedEvent
事件发送给所有注册的监听器。 - 然后,
run
方法会调用ConfigurableApplicationContext
实例的refresh
方法,该方法负责刷新应用程序上下文,并初始化所有的Spring Bean。 - 接着,
run
方法会调用SpringApplication
对象的listeners
方法,将ApplicationStartedEvent
事件发送给所有注册的监听器。 - 然后,
run
方法会调用SpringApplication
对象的listeners
方法,将ApplicationReadyEvent
事件发送给所有注册的监听器。 - 最后,
run
方法返回应用程序上下文的引用,将其传递给调用方。
总的来说,run
方法的执行流程可以分为以下几个步骤:创建SpringApplication
对象、准备应用程序上下文、刷新应用程序上下文、应用ApplicationContextInitializer
对象、发送事件给监听器。
mvc
Spring MVC是一个基于MVC设计模式的Web框架,其核心思想是将请求处理过程分为三个主要阶段:处理器映射、处理器适配和视图渲染。下面是Spring MVC的执行流程:
- 客户端发送请求至Dispatcher Servlet。
- Dispatcher Servlet 根据请求路径通过Handler Mapping映射请求到相应的Controller。
- Handler Adapter调用相应的Controller方法并传递请求参数。
- Controller中的方法进行业务处理并通过ModelAndView返回模型数据和视图名称。
- Dispatcher Servlet通过View Resolver解析视图名称并根据视图名称找到相应的View实现类。
- View实现类渲染模型数据生成HTML格式的响应内容。
- Dispatcher Servlet将响应内容返回给客户端。
整个请求处理过程中,涉及到的主要对象包括:
- Dispatcher Servlet:前端控制器,接收客户端请求并将请求分发到相应的Controller。
- Handler Mapping:处理器映射,根据请求路径映射到相应的Controller。
- Handler Adapter:处理器适配器,将请求参数转换成Controller方法的参数,并调用相应的Controller方法。
- Controller:业务逻辑处理的控制器,对请求进行处理,并返回模型数据和视图名称。
- Model:模型对象,保存处理结果数据。
- View Resolver:视图解析器,将视图名称解析成具体的视图实现类。
- View:视图实现类,负责渲染模型数据并生成响应内容。
需要注意的是,Spring MVC是基于Spring框架的,因此在使用Spring MVC时,还需要配置Spring框架的相关组件,如IoC容器、AOP等。