zoukankan      html  css  js  c++  java
  • service注入到action中

    service注入到action中

    之前本人每次要获得service都是在action自己通过WebApplicationContext的getBean获得的,一直在spring中只配置到了service这一层,没有配置过action。今天闲的无聊将action也配置到了spring,原来是这么的简单。

    1.添加jar包struts2-spring-plugin-xxx.jar
    2.在struts.xml配置文件中增加

    <constant name="struts.objectFactory" value="spring"/>

    3.在spring.xml中加入需要的action

    <bean class="com.gavin.sma.action.UserInfoAction" id="userInfoAction">
            <property name="userInfoService" ref="userInfoService"></property>
        </bean>

    好了,完成了。


    顺便说说ObjectFactory(转载至 http://aixiangct.blog.163.com/blog/static/9152246120101016113237982)
    ObjectFactory,是xwork中很重要的一个类,是产生action的地方。单独使用xwork的时候,action都是这个类创建的。
    struts2 包装了ObjectFactory,自成了一个StrutsObjectFactory,他是继承自ObjectFactory的一个类,因此 struts2默认产生action的类就不使用xwork的ObjectFactory了,而是使用StrutsObjectFactory。

    struts2 的插件struts2-spring-plugin-2.1.8.1.jar,又做了一个对象工 厂,StrutsSpringObjectFactory,它的父类是xwork的SpringObjectFactory,最原始的父类也是 ObjectFactory,我想xwork提供SpringObjectFactory的目的就是让实现这继承这个类,实现spring工厂。

    于是struts2中也就是说有3个 对象工厂,
    org.apache.struts2.spring.StrutsSpringObjectFactory(struts2的spring插件提供)

    org.apache.struts2.impl.StrutsObjectFactory(struts2自带)

    com.opensymphony.xwork2.ObjectFactory(xwork自带)。
    他们都可以用于产生action。

    在 xwork中默认使用ObjectFactory,在struts2中默认使用StrutsObjectFactory。使用struts2的 spring插件的时候默认使用StrutsSpringObjectFactory,这些都是自动的,其中前两个都是struts2的内容。都是由
    <constant name="struts.objectFactory" value="spring" />
    来控制,这里的value,就是
    <bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />

    在这bean里面定义的是哪个工厂,struts2就用哪个工厂。

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/gavinYang/p/3929564.html
Copyright © 2011-2022 走看看