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文件
本文深入探讨了Struts2的ConfigurationProvider接口及其作用,包括加载和注册Struts配置文件的过程。内容涉及ContainerProvider、PackageProvider接口,重点分析了StrutsXmlConfigurationProvider对XML配置文件的解析,以及BeanSelectionProvider如何根据Struts常量配置初始化并整合Spring等其他框架。同时提到了LegacyPropertiesConfigurationProvider处理Struts相关properties文件,以及DefaultPropertiesProvider初始化默认配置文件。
148

被折叠的 条评论
为什么被折叠?



