springmvc的生命周期 - 面试宝典
【摘要】 Spring MVC的生命周期可以分为以下几个阶段:容器初始化:当应用启动时,Spring MVC容器会被初始化。这个阶段包括了加载配置文件、创建Spring容器、实例化并配置DispatcherServlet等操作。请求到达:当有HTTP请求到达服务器时,DispatcherServlet会拦截并接收请求。此时,DispatcherServlet会根据请求的URL,调用HandlerMap...
Spring MVC的生命周期可以分为以下几个阶段:
- 容器初始化:当应用启动时,Spring MVC容器会被初始化。这个阶段包括了加载配置文件、创建Spring容器、实例化并配置DispatcherServlet等操作。
- 请求到达:当有HTTP请求到达服务器时,DispatcherServlet会拦截并接收请求。此时,DispatcherServlet会根据请求的URL,调用HandlerMapping来确定对应的处理器(Controller)。
- 处理器执行:在确定了请求的处理器之后,DispatcherServlet会将请求传递给处理器,由处理器执行相应的业务逻辑。
- 视图解析:处理器执行完业务逻辑后,会返回一个ModelAndView对象,其中包含了模型数据和视图名称。DispatcherServlet会通过ViewResolver来解析视图名称,找到对应的视图。
- 视图渲染:一旦找到了视图,DispatcherServlet会将模型数据传递给视图,并由视图来渲染最终的HTML内容。
- 响应返回:渲染完成后,DispatcherServlet会将响应返回给客户端。
- 容器销毁:当应用关闭时,Spring MVC容器会被销毁。这个阶段包括了释放资源、关闭数据库连接等操作。 以上就是Spring MVC的生命周期的主要阶段。每个阶段都有相应的回调方法或者事件监听器可以进行定制和扩展。
以下是一个简单的示例代码,展示了Spring MVC的生命周期:
javaCopy code// Controller
@Controller
public class MyController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello, World!");
return "hello";
}
}
// 配置文件
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class AppConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
// 启动类
public class Application {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
ServletRegistration.Dynamic registration = context.getServletContext().addServlet("dispatcherServlet", dispatcherServlet);
registration.setLoadOnStartup(1);
registration.addMapping("/");
}
}
在上述示例中,MyController
是一个简单的处理器,使用@Controller
注解标注,并定义了一个hello
方法,处理"/hello"的请求,并将"Hello, World!"消息存入模型中。 AppConfig
是Spring MVC的配置文件,使用@Configuration
注解标注,并实现了WebMvcConfigurer
接口,用于配置视图解析器和组件扫描。 Application
是启动类,通过创建AnnotationConfigApplicationContext
对象初始化Spring MVC容器,并注册DispatcherServlet
,将其映射到根路径"/"。 以上示例展示了Spring MVC的生命周期中的一些关键步骤,包括容器初始化、请求到达、处理器执行、视图解析、视图渲染和响应返回。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)