struts2系列前奏之struts2核心类

com.opensymphony.xwork2.config.impl.DefaultConfiguration(Configuration接口的实现类)默认的配置类。

DefaultConfiguration的内部类:RuntimeConfigurationImpl(com.opensymphony.xwork2.config.RuntimeConfiguration接口的实现类,真正存action参数信息的地方,e.g:action名称,action命名空间等)

RuntimeConfigurationImpl内部属性:

private Map<String, Map<String, ActionConfig>> namespaceActionConfigs;==>键是namespace(命名空间),值是action名称和ActionConfig组成的map。

现实含义就是每个命名空间下的所有action信息的map,在com.opensymphony.xwork2.DefaultActionProxy的prepare()方法里面根据它的成员变量namespace,actionName从RuntimeConfigurationImpl获取到该action的ActionConfig信息。

private Map<String, ActionConfigMatcher> namespaceActionConfigMatchers;==>键是namespace,值是com.opensymphony.xwork2.config.impl.ActionConfigMatcher.ActionConfigMatcher。

private Map<String, String> namespaceConfigs;==>键是namespace,值是com.opensymphony.xwork2.config.entities.PackageConfig.getFullDefaultActionRef()方法的返回值。

com.opensymphony.xwork2.config.ContainerProvider==>接口:Provides beans and constants/properties for the Container,提供加载xml文件里面bean和constant节点后生成的内容。

com.opensymphony.xwork2.config.PackageProvider==>接口:Provides configuration packages. The separate init and loadPackages calls are due to the need topreserve backwards compatibility with the 2.0 ConfigurationProvider interface,提供加载xml文件里面package节点后生成的内容。

com.opensymphony.xwork2.config.ConfigurationProvider==>同时继承了ContainerProvider和PackageProvider两个接口的组合接口,即能同时提供加载bean和constant,package三个节点后生成的内容。

ConfigurationProvider接口上有解释:Interface to be implemented by all forms of XWork configuration classes,由所有形式的XWork配置类实现的接口。

org.apache.struts2.convention.ClasspathPackageProvider==>PackageProvider接口的实现类,该类的英文解释有点多(自行查看),简单点说就是struts2里面包范围的配置处理(例如扫面类路径下的action类)都是它在干,这个类干的事尤其重要!但是,它不会直接处理,而是委托给了它的属性actionConfigBuilder来做。

org.apache.struts2.convention.ActionConfigBuilder==>接口:找到Struts XML文件或任何插件中没有明确定义的所有动作对象(action),同时定位所有动作(action)的返回结果(result)。

org.apache.struts2.convention.PackageBasedActionConfigBuilder==>ActionConfigBuilder接口的实现类。

在struts2-convention-plugin-2.x.x.jar的struts2-plugin.xml里面能明确看到,

指定的PackageProvider实现类其中之一就是org.apache.struts2.convention.ClasspathPackageProvider,

指定的actionConfigBuilder的实现类是org.apache.struts2.convention.PackageBasedActionConfigBuilder。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值