struts2中的对象工厂和静态注入

需要解决的问题:

struts2中的像action result  inteceptor 这些类都是由struts2怎么产生的? 给你做,你会让他们怎么产生.带这这个问题,我们来看一下struts2中的对象工厂和静态注入

 

struts2使用了对象工厂objectFactory这个概念,下面我们来看一下objectFactory这个类的结构

下面是objectFactory的类图



通过上面的各个方法,

buildAction是用来创建action的

buildInterceptor是用来创建interceptor

buildResult是用来创建结果集…….

我们知道了actionresult  inteceptor 这些类的创建方式,那么这个静态注入又是什么呢

我们把静态和注入分开来理解

何为静态:

凡是在struts的xml文件中配置的bean,例如:

        <beantype="com.opensymphony.xwork2.ObjectFactory" name="struts"class="org.apache.struts2.impl.StrutsObjectFactory" />

      在服务器启动的时候就会加载,而且只加载一次,所以为静态

 

何为注入:StrutsObjectFactory就给纳入到struts2容器中了,这样的现象为注入

 应用:值栈的实现类也是通过静态注入改变的

      <beantype="com.opensymphony.xwork2.util.ValueStackFactory"name="struts"class="com.opensymphony.xwork2.ognl.OgnlValueStackFactory" />

 

举例说明:

Public class strutsObjectFactory extend objectFactory {  //StrutsObjectFactory是借用ObjectFactorybuildAction方法创建action

}

struts2容器运行后,会加载struts-default.xml文件,而文件中配置有

<beantype="com.opensymphony.xwork2.ObjectFactory" name="struts"class="org.apache.struts2.impl.StrutsObjectFactory" />

说明:struts2容器会去读该配置文件中的这个配置,然后决定action是由哪个类来创建的

 

之后通过bean的内容找到相应的类来创建,这就是struts2的对象工厂和静态注入,在这里只是简单的讲解一下,没有深入去剖析.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值