Struts 2设计者指南02:对象工厂

文章翻译自Struts 2官方文档

对象工厂(ObjectFactory)实例化框架创建的所有的对象。对象工厂提供了框架集成IoC容器,例如Spring,Pico,Plexus等等,的方法。

定制

继承ObjectFactory

定制ObjectFactory必须继承ObjectFactory或它的子类,并且要有一个默认的无参的构造器。

为了注册一个定制的ObjectFactory,在struts.properties添加或编辑一条条目

struts.objectFactory=foo.bar.MyCustomObjectFactory

 其中foo.bar.MyCustomObjectFactory是定制的对象工厂。

public class MyObjectFactory extends ObjectFactory {
    .....
}

 定义专用的工厂

如果你仅仅想继承ObjectFactory的以部分,也就是改变Result Types创建的方式,你可以实现ResultFactory接口并用一个专用的名字注册它,更多细节参考Extension Points。原始的ObjectFactory将使用这些专用的工厂来完成工作。这样也可以定义专用的工厂——ObjectFactory的原始功能可以被实现了下面这些接口的类获得。更多细节请检查ObjectFactory的源码。从版本2.3.16以后可以获得所有的这些工厂。

工厂接口的列表:

  • ResultFactory——ObjectFactory创建Result Types的专用接口
  • StrutsResultFactory ResultFactory的内部实现,用来检查Result是否实现ParamNameAwareResult接口来限制Result实例上设置的参数的名字,更多信息参考Result Types。
  • ActionFactory——ObjectFactory创建action的专用接口
  • InterceptorFactory——ObjectFactory创建拦截器的专用接口
  • ValidatorFactory——ObjectFactory创建验证器的专用接口
  • ConverterFactory——ObjectFactory创建TypeConverter实例的专用接口
  • UnknownHandlerFactory——ObjectFactory创建Unknown Handlers(从版本2.3.18开始)实例的专用接口

猜你喜欢

转载自a2429854489.iteye.com/blog/2284933
今日推荐