(四)Spring源码分析--SpringMVC加载原理

本文深入探讨SpringMVC与Spring容器的整合过程。通过ServletContainerInitializer接口,容器在启动时查找并执行onStartup方法。SpringServletContainerInitializer类被找到,接着分析@HandlesTypes注解的作用,它在onStartup方法中触发WebApplicationInitializer接口实现类的初始化。重点讨论了AbstractContextLoaderInitializer和AbstractDispatcherServletInitializer,前者负责创建监听器和父容器,后者用于创建DispatcherServlet并整合子容器,实现SpringMVC配置。
摘要由CSDN通过智能技术生成

SpringMVC是如何与我们的Spring容器整合的?它的工作机制又是如何?下面我们将通过源码来一起揭开它的神秘面纱。

谈到SpringMVC就离不开我们的servlet,在servlet3.0规范中当容器启动时会寻找每一个jar包下的SevletContainerInitializer接口实现类,执行实现类的onStartup()方法。那么容器是如何去寻找jar包中的接口实现类的呢?它会扫描每个jar包下元数据文件META-INF下的services文件夹中有没有以接口全类名命名的文件javax.servlet.ServletContainerInitializer,如果存在此文件那么文件中的内容就是接口实现类的类名:

通过接口实现全类名找到SpringServletContainerInitializer类。

@HandlesTypes(WebApplicationInitializer.class)
public class SpringServletContainerInitializer implements ServletContainerInitializer {

	@Override
	public void onStartup(@Nullable Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)
			throws ServletException {

		List<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值