Struts2源码浅析-ConfigurationProvider

ConfigurationProvider接口 主要完成struts配置文件 加载 注册过程

ConfigurationProvider接口定义

  1. public interface ConfigurationProvider extends ContainerProvider, PackageProvider {  
  2. }  

ContainerProvider接口定义

  1. /** 
  2.  * 容器加载 注册器 
  3.  */  
  4. public interface ContainerProvider {  
  5.   
  6.     public void destroy();  
  7.       
  8.     /** 
  9.      * 初始化阶段调用 
  10.      * XmlConfigurationProvider#init为具体实现 主要加载xml 生成Document对象 
  11.      */  
  12.     public void init(Configuration configuration) throws ConfigurationException;  
  13.       
  14.     /** 
  15.      * 根据xml常量 设置是否支持reload 
  16.      */  
  17.     public boolean needsReload();  
  18.       
  19.     /** 
  20.      * 解析 注册bean,struts常量到容器ContainerBuilder 
  21.      */  
  22.     public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException;  
  23.       
  24. }  

PackageProvider接口定义

  1. /** 
  2.  * package节点加载 解析器 
  3.  * 加载  解析xml文件配置的package节点  
  4.  * @since 2.1 
  5.  */  
  6. public interface PackageProvider {  
  7.       
  8.     /** 
  9.      * 初始化阶段调用 
  10.      * XmlConfigurationProvider#init为具体实现 主要加载xml 生成Document对象 
  11.      */  
  12.     public void init(Configuration configuration) throws ConfigurationException;  
  13.       
  14.     /** 
  15.      * 根据xml常量 设置是否支持reload 
  16.      */  
  17.     public boolean needsReload();  
  18.   
  19.     /** 
  20.      * 加载 解析 xml文件中定义的package节点 创建PackageConfig对象 
  21.      */  
  22.     public void loadPackages() throws ConfigurationException;  
  23.       
  24. }  



StrutsXmlConfigurationProvider:struts 相关xml 加载解析

BeanSelectionProvider:根据struts常量配置 初始化与其他框架整合用到的类 例如xml中配置struts.objectFactory为spring 就需要StrutsSpringObjectFactory

LegacyPropertiesConfigurationProvider: strutus 相关的properties文件

DefaultPropertiesProvider:: 初始化org/apache/struts2/default.properties文件

转载:Struts2源码浅析-ConfigurationProvider  mark

原文地址:https://www.cnblogs.com/langtianya/p/5135275.html