Struts2源码浅析-ConfigurationProvider

时间:2022-03-11 17:50:02

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

ConfigurationProvider接口定义

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

ContainerProvider接口定义

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

PackageProvider接口定义

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

Struts2源码浅析-ConfigurationProvider

StrutsXmlConfigurationProvider:struts 相关xml 加载解析

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

LegacyPropertiesConfigurationProvider: strutus 相关的properties文件

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

转载:Struts2源码浅析-ConfigurationProvider  mark