-
# struts2.5启动过程
* web容器启动初始化为struts2配置的filter
* filer init函数被调用
* 创建并初始化dispather
* 创建ConfigurationManager的对象
* 为ConfigurationManager对象添加ContainerProvider,步骤如下
* FileManagerProvider
* DefaultPropertiesProvider
* XmlConfigurationProvider和StrutsXmlConfigurationProvider(看config配置参数)
* PropertiesConfigurationProvider(默认struts.properties)
* configProviders参数配置的ContainerProvider类
* 添加一个将过滤器参数加入到管理属性的ContainerProvider
* DefaultBeanSelectionProvider
* 创建Container(线程局部变量,ContainerHolder类管理)
* 使用ConfigurationManager对象创建Configuration对象,这里使用的是DefaultConfiguration类
* 注册类到对象工厂
* 创建容器对象,使用ContainerImpl类
* 依赖注入对象,使用ContainerProvider加载配置信息
* 使用PackageProvider加载配置信息
* 创建ActionContext对象(线程局部变量,ActionContext类管理)
* 构建运行时Configuration
* 配置reloadi18n参数
* 配置devMode参数
* 创建StaticContentLoader对象
* 加载排除的url
* 总结
* 先加载配置default.properties
* 加载过滤器参数config配置的配置文件,可以用逗号隔开多个配置文件。如果config配置参数不存在,则加载struts-default.xml,struts-plugin.xml,struts.xml配置文件
* 注册bean节点配置的类
* 注册constant节点配置的属性
* 加载package节点配置的参数
* 加载struts.properties(如果存在该配置文件的话)
* 加载struts.custom.properties参数配置的配置文件,可以用逗号隔开多个配置文件
* 加载configProviders过滤器参数配置的配置文件,可以用逗号隔开
转载于:https://my.oschina.net/465759695/blog/780097