Struts2初始化过程代码分析
根據web.xml的配置
?
?
調用FilterDispatcher.init(FilterConfig filterConfig)
1. 創建org.apache.struts2.Dispatcher,并調用init()方法
1.1. 創建com.opensymphony.xwork2.config.ConfigurationManager,其中屬性List<ContainerProvider> containerProviders存放所有配置。
1.2. init_DefaultProperties();
初始化DefaultPropertiesProvider,其中方法register(ContainerBuilder builder, LocatableProperties props)實現會從org/apache/struts2/default.properties加載settings到props中,最后將其加入containerProviders.
1.3. init_TraditionalXmlConfigurations();
默認根據struts-default.xml,struts-plugin.xml,struts.xml (可根據init-param:config 修改加載路徑) 分別創建三個 org.apache.struts2.config. StrutsXmlConfigurationProvider,其中方法register實現默認會從相應配置文件讀取props加載到setting中,會將bean放入ContainerBuilder中,最后將三個containerProviders并加入containerProviders
1.4. init_LegacyStrutsProperties();
初始化LegacyPropertiesConfigurationProvider,并加入containerProviders
1.5. init_CustomConfigurationProviders();
根據init-param:configProviders初始化實現了ContentProvider接口的類,并加入containerProviders.
1.6. init_FilterInitParameters() ;
初始化一個ConfigurationProvider,將定義的initParams從web.xml中讀入,放入props
1.7. init_AliasStandardObjects() ;
初始化BeanSelectionProvider
1.8. Container container = init_PreloadConfiguration()
1.8.1. 在初始化時會去執行configuration.reloadContainer(getContainerProviders());
類:com.opensymphony.xwork2.config.impl.DefaultConfiguration
方法:reloadContainer(List<ContainerProvider> providers)
初始化ContainerProperties props,ContainerBuilder builder
遍歷containerProviders,調用其register(builder, props)方法
再將props注入builder中。
轉載于:https://www.cnblogs.com/jinspire/archive/2011/09/20/2182240.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Struts2初始化过程代码分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux sokit使用方法,【sok
- 下一篇: Hadoop配置文件详解