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文件

 

posted on 2012-05-16 23:59  YangJin  阅读(247)  评论(0编辑  收藏  举报