//接口
interface ModuleConfig{
//一些getter setter find方法 对DataSource MessageResource ActionMapping等资源文件进行操作
}
//就是 具体产品类
class ModuleConfigImpl implements ModuleConfig{
//用于产生一个默认的ModuleConfig对象
public ModuleConfigImpl(String prefix){
//初始化默认的资源类型 大部分为null,一些指定了基本类型
}
/**Struts_config.xml中的<action-mapping>配置项*/
protected HashMap forwards;
protected HashMap messageResources;
//省略其他的一些属性
}
//工厂类
abstract class ModuleConfigFactory{
//创建产品
abstract ModuleConfig createModuleConfig(String prefix);
//获得工厂类对象
ModuleConfigFactory getModuleConfigFactory(String prefix){
//返回DefaultModuleConfigFactory对象
return new DefaultModuleConfigFactory(prefix);
}
}
//工厂类的默认实现
class DefaultModuleConfigFactory extends ModuleConfigFactory{
//实现抽象方法
ModuleConfig createModuleConfig(String prefix){
return new ModuleConfigImpl(prefix);
}
}
/**调用方法ActionServlet类中的init()方法:*/
//实例工厂类
ModuleConfigFactory moduleConfigFactory=ModuleConfigFactory.createModuleConfigFactory();
//获得产品
ModuleConfig moduleConfig=oduleConfigFactory.createModuleConfig(prefix);
Sturts使用工厂类创造了ModuleConfig对象,其实还是使用了面向接口编程的方法,利用接口来动态的指定其子类,便于扩展
分享到:
相关推荐
在Struts中,读取模块配置的ModuleConfig采用了工厂方法模式。涉及到的关键类有ModuleConfig接口、抽象类ModuleConfigFactory、ModuleConfig实现类ModuleConfigImpl,以及ModuleConfigFactory的子类...
在Struts中,FormBeanConfig集合存储ActionForm的相关配置,使得框架能够判断何时需要创建ActionForm实例。ActionMapping虽然在早期版本中起着重要作用,但在Struts 1.2中,大部分功能已被ActionConfig所取代,主要...
在Struts中,ActionServlet作为控制器,负责接收HTTP请求,解析配置文件(struts-config.xml)并初始化ModuleConfig对象。ActionServlet根据请求找到对应的Action子类,如果找不到合适的Action,会直接将请求转发给...
在Struts框架中,配置文件起着至关重要的作用,用于设定应用程序的行为和组件之间的交互。主要有两个核心配置文件:`web.xml`和`struts-config.xml`。 首先,`web.xml`是Web应用的部署描述符,它位于`WEB-INF`目录...
在初始化过程中,`configDigester`使用SAX解析技术解析这些配置文件,生成ModuleConfig对象。每个ModuleConfig对象封装了一个模块的配置信息,包括Action映射、数据源、消息资源等。配置文件中的`...
这个文件通常包含了常量定义、结构体、枚举类型、函数原型和其他声明,这些内容都是为了帮助开发人员在项目中使用`ch9121`网络配置协议。在`ModuleConfig.h`中,我们可能会找到如下内容: 1. **常量定义**:定义与`...
Struts 1.3.9是在2008年发布的,它提供了许多增强和修复了之前版本中的问题,以提高框架的稳定性和安全性。 首先,我们来看看`LICENSE.txt`和`NOTICE.txt`这两个文件。`LICENSE.txt`通常包含了软件的许可协议信息,...
在本压缩包"struts-1.2.9-src"中,包含的是Struts 1.2.9版本的源代码,这对于开发者深入理解Struts的工作原理、调试问题或者进行二次开发非常有帮助。 Struts框架的核心组件包括Action、ActionForm、ActionServlet...
文章提供了有关MVC模型2模式及其在Struts中的实现的额外阅读材料,这对于深入理解框架的工作原理非常有益。 ### 致谢与版权 最后,文章会感谢作者的辛勤工作,并明确是否允许读者在其项目中使用图表,确保版权得到...
在架构(Framework)的概念中,它是指对已解决的同类问题的解决方案进行抽象,形成一个基础结构,以便于在不同的项目中重复使用。在Struts框架中,"命令和控制"组件主要体现在ActionServlet中,它是整个框架的入口点...
4. `initModuleConfig()`方法将`struts-config.xml`中的配置项初始化后放入`moduleConfig`对象,以提高访问速度,因为`moduleConfig`存储在内存中,读取速度远超硬盘。 5. 插件初始化,Struts1支持插件机制,增强了...
通过研究这些源码,开发者可以更好地理解MVC模式在Struts中的实现,以及它如何与Servlet容器(如Tomcat)协作。同时,这也为自定义行为、优化性能或者解决已知问题提供了可能。例如,你可以查看`RequestProcessor`...
在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)。本文将详细介绍这两种配置文件的作用及...
值得注意的是,直接将Struts的Action作为欢迎文件是不可行的,但可以通过在欢迎文件中嵌入逻辑控制,如使用 `<logic:forward>` ,来间接调用Struts Action。 #### 4. **Error Page配置** - `<error-page>` 元素...
在Action类中,可以使用`getDataSource(HttpRequest)`方法获取数据源对象。如果需要配置多个数据源,可通过key属性区分。 4. `<form-beans>`元素 `<form-beans>`元素配置ActionForm Bean,ActionForm是业务逻辑和...
- `ModuleConfigImpl`的初始化是在`ActionServlet`的`initModuleConfig`方法中完成的,通过`ModuleConfigFactory`工厂模式创建。 - 在初始化过程中,会调用`parseModuleConfigFile`方法来解析`struts-config.xml`...
在`web.xml`中声明这些标签库,以便在JSP页面中使用。 **struts-config.xml配置** `struts-config.xml`是Struts应用的主要配置文件,它定义了Action、ActionForm、Forward等关键组件。 1. **配置ActionForm**: `...
Struts框架会在应用程序启动时加载并解析`struts-config.xml`文件,将其中的信息转换成相应的Java对象存储在内存中,供后续的处理流程使用。 ##### 2. org.apache.struts.config包的作用 在Struts框架内部,为了...
7. **FastHashMap**: FastHashMap是Struts中一个优化过的哈希映射实现,比Java内置的HashMap更快。它用于存储和查找配置信息、ActionMapping等,提供高效的键值对存储和检索。 通过阅读和理解Struts的源码,开发者...
`ConfigRuleSet`类负责解析Struts配置文件的规则集合,它在应用启动时构造`org.apache.struts.config`包中其他用于保存配置信息的JavaBean实例,确保配置信息正确无误地被存储和使用。 #### 三、Struts配置文件关键...