Struts2源码浅析-ConfigurationProvider
ConfigurationProvider接口 主要完成struts配置文件 加载 注册过程
ConfigurationProvider接口定义
public interface ConfigurationProvider extends ContainerProvider, PackageProvider { }
ContainerProvider接口定义
/** * 容器加载 注册器 */ public interface ContainerProvider { public void destroy(); /** * 初始化阶段调用 * XmlConfigurationProvider#init为具体实现 主要加载xml 生成Document对象 */ public void init(Configuration configuration) throws ConfigurationException; /** * 根据xml常量 设置是否支持reload */ public boolean needsReload(); /** * 解析 注册bean,struts常量到容器ContainerBuilder */ public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException; }
PackageProvider接口定义
/** * package节点加载 解析器 * 加载 解析xml文件配置的package节点 * @since 2.1 */ public interface PackageProvider { /** * 初始化阶段调用 * XmlConfigurationProvider#init为具体实现 主要加载xml 生成Document对象 */ public void init(Configuration configuration) throws ConfigurationException; /** * 根据xml常量 设置是否支持reload */ public boolean needsReload(); /** * 加载 解析 xml文件中定义的package节点 创建PackageConfig对象 */ public void loadPackages() throws ConfigurationException; }
StrutsXmlConfigurationProvider:struts 相关xml 加载解析
BeanSelectionProvider:根据struts常量配置 初始化与其他框架整合用到的类 例如xml中配置struts.objectFactory为spring 就需要StrutsSpringObjectFactory
LegacyPropertiesConfigurationProvider: strutus 相关的properties文件
DefaultPropertiesProvider:: 初始化org/apache/struts2/default.properties文件
Andy_能力越到责任越大