spring调整acegi过程中两种初始化spring容器的区别

spring整合acegi过程中两种初始化spring容器的区别

     在企业中,为了实现web项目的安全性,整合acegi是一个不错的选择。

     spring提供了两种加载DI容器的方法:ContextLoaderServlet和ContextLoaderListener。

     一旦采用contextloaderservlet装载springDI容器,filtertobeanproxy和contextloaderservlet的实例化顺序可能会出现不一致。此时,filtertobeanproxy可能试图在congtextloaderservlet前完成初始化工作,然而它需要用到springDI容器,而这个DI容器又是由contextloaderservlet加载完成的。因此,我们需要启用filtertobeanproxy的延迟初始化策略,从而保证它能够正确操控到ID容器。

     <filter>

<filter-name>securityFilter</filter-name>

<filter-class>

org.acegisecurity.util.FilterToBeanProxy

</filter-class>

<init-param>

<param-name>targetClass</param-name>

<param-value>

org.acegisecurity.util.FilterChainProxy

</param-value>

</init-param>

                <init-param>

<param-name>init</param-name>

<param-value>lazy</param-value>

</init-param>

</filter>