DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,
- 还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,
- 另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。
Spring web在设计的时候考虑到某些功能的实现是
Spring web在设计的时候考虑到某些功能的实现是通过Filter来拦截进行实现的,如果直接的简单的实现几个Filter好像也不是不可以(平时我们就是这么用的),但是Spring框架最核心的是IOC容器, 和Spring框架最好的实现就是将要实现的Filter功能注册到IOC容器的一个Bean,这样就可以和Spring IOC容器进行完美的融合,所以Spring Web设计了DelegatingFilterProxy。
1、DelegatingFilterProxy根据targetBeanName从Spring 容器中获取被注入到Spring 容器的Filter实现类, 在DelegatingFilterProxy配置时一般需要配置属性targetBeanName
2、在DelegatingFilterProxy的实现方法doFilter中,其实最终调用的是委派的类delegate
总结:Spring web通过提高DelegatingProxyFilter类给开发者提供了便利
在springboot中 使用了filter, 并且注入了业务工具类(APIUtil ),但注入是null
解决办法1:
新增一个config类,用来手工创建filter的bean, 例如:
解决办法2:
过滤器是servlet规范中定义的,并不归spring容器管理,也无法直接注入spring中的bean(会报错)
初始化时通过spring上下文获取,进行bean的初始化:Original: https://www.cnblogs.com/fnlingnzb-learner/p/16449848.html
Author: Boblim
Title: Spring:代理Filter:DelegatingFilterProxy原理和作用
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540847/
转载文章受原作者版权保护。转载请注明原作者出处!