DelegatingFilterProxy注入servletContext容器

 

我们来分析一下在tomcat启动的过程中会创建webServer,在此时会调用onStartup()方法,此时会遍历所有的ServerContextInitializer对象,这个接口的主要作用就是向servlet容器中添加对象。

 

 

此时我们继续深入 其会调用selfInitialize方法进行执行,我们看下这个方法的作用

 

private void selfInitialize(ServletContext servletContext) throws ServletException {
		// 1.判断servletContext是否重复初始化
		// 2.servletContext 交给ServletWebServerApplicationContext管理的方法
		prepareWebApplicationContext(servletContext);
		// 1.设置sevletContext的作用域
		registerApplicationScope(servletContext);
		// 注册servletContext单例到spring容器中
		WebApplicationContextUtils.registerEnvironmentBeans(getBeanFactory(), servletContext);
		// 获取 ServletContextInitializer 子类,然后依次执行onStartup
		for (ServletContextInitializer beans : getServletContextInitializerBeans()) {
			beans.onStartup(servletContext);
		}
	}

 之后接着遍历ServletContextInitializer对象中的onStartup()方法

 

在这里我们可以调用register方法对对象向servlet容器中进行注册 

 

 

此时我们可以看到通过getFilter()方法可以获取到一个过滤器然后将此过滤器添加到servletContext容器当中 而在getFiliter()方法执行的时候创建了DelegatingFilterProxy对象注意此时的targetName,后面会根据targetName从WebApplicationContext容器中查找 

参考文章: 

  Spring Security之springSecurityFilterChain注册到sevlet的过程(二)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值