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. }

StrutsXmlConfigurationProvider:struts 相关xml 加载解析

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

LegacyPropertiesConfigurationProvider: strutus 相关的properties文件

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

转载:Struts2源码浅析-ConfigurationProvider  mark

Struts2源码浅析-ConfigurationProvider的更多相关文章

  1. Struts2源码阅读(一)_Struts2框架流程概述

    1. Struts2架构图  当外部的httpservletrequest到来时 ,初始到了servlet容器(所以虽然Servlet和Action是解耦合的,但是Action依旧能够通过httpse ...

  2. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  3. 【深入浅出jQuery】源码浅析2--奇技淫巧

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  4. Struts2 源码分析——DefaultActionInvocation类的执行action

    本章简言 上一章讲到关于拦截器的机制的知识点,让我们对拦截器有了一定的认识.我们也清楚的知道在执行用户action类实例之前,struts2会先去执行当前action类对应的拦截器.而关于在哪里执行a ...

  5. Struts2 源码分析——拦截器的机制

    本章简言 上一章讲到关于action代理类的工作.即是如何去找对应的action配置信息,并执行action类的实例.而这一章笔者将讲到在执行action需要用到的拦截器.为什么要讲拦截器呢?可以这样 ...

  6. Struts2 源码分析——Action代理类的工作

    章节简言 上一章笔者讲到关于如何加载配置文件里面的package元素节点信息.相信读者到这里心里面对struts2在启动的时候加载相关的信息有了一定的了解和认识.而本章将讲到关于struts2启动成功 ...

  7. Struts2 源码分析——配置管理之PackageProvider接口

    本章简言 上一章讲到关于ContainerProvider的知识.让我们知道struts2是如何注册相关的数据.也知道如何加载相关的配置信息.本章笔者将讲到如何加载配置文件里面的package元素节点 ...

  8. Struts2 源码分析——配置管理之ContainerProvider接口

    本章简言 上一章笔者讲到关于Dispatcher类的执行action功能,知道了关于执行action需要用到的信息.而本章将会讲到的内容也跟Dispatcher类有关系.那就是配置管理中的Contai ...

  9. Struts2 源码分析——调结者(Dispatcher)之执行action

    章节简言 上一章笔者写关于Dispatcher类如何处理接受来的request请求.当然读者们也知道他并非正真的执行action操作.他只是在执行action操作之前的准备工作.那么谁才是正真的执行a ...

随机推荐

  1. 简单理解dropout

    dropout是CNN(卷积神经网络)中的一个trick,能防止过拟合. 关于dropout的详细内容,还是看论文原文好了: Hinton, G. E., et al. (2012). "I ...

  2. 【BZOJ-3033】太鼓达人 欧拉图 + 暴搜

    3033: 太鼓达人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 204  Solved: 154[Submit][Status][Discuss] ...

  3. 【BZOJ-4520】K远点对 KD-Tree + 堆

    4520: [Cqoi2016]K远点对 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 490  Solved: 237[Submit][Status ...

  4. Matlab读入含有特殊分隔符的文件(textread)

    笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充: textread 基本语法是: [A,B,C,…] = textread(filename,format) [A,B,C,…] = tex ...

  5. 下载Spring的jar包的方法

  6. 【bzoj2190】 SDOI2008—仪仗队

    http://www.lydsy.com/JudgeOnline/problem.php?id=2190 (题目链接) 题意 一个N*N的方阵,问右下角的人能看到几个人. Solution 如果一个人 ...

  7. Linux、Windows Server Password Security Policy Strengthen

    catalog . windows Security and Protection(Logon and Authentication) . windows密码强制安全策略 . PAM(Pluggabl ...

  8. dedecms /plus/stow.php Twice SQL Injection

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 收藏文章功能$title变量未过滤,造成二次注入 Relevant Li ...

  9. 做自己的类库dll文件

    除了在项目中把类放在不同的文件夹之外,还可以把他们放在完全不同的项目中,添加引用dll 实现对类的调用, 如果一个项目只包含类 但没有入口点 ,那么这个项目叫做类库. 类库项目编译为.dll程序集.( ...

  10. AndroidStudio不能解析R的一种可能

    最近在做一个APP,突然就无法编译了,提示信息: 查了半天也没找到好的解决办法,最后想起来误删了一个文件,然后Ctrl+Z回退了事,结果不知为何,那个图片文件损坏了,倒是R无法编译出来,方才报错. 记 ...