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就用哪个工厂。

  • 相关阅读:
    统计八连块
    linux-shell编程-添加用户并设置权限
    chrome 的网站测试工具
    windows10安装自带的ubuntu子系统
    开源项目阅读笔记--appium+adb
    TODO 软件质量模型--理论
    java -static的特性和使用,静态类/方法/块/内部类/回收机制
    TODO 竞品分析方法——关于导航评测的一些笔记
    mock工具:mock.js 和vscode faker,moco
    移动App性能评测与优化-Android内存测试 ,DVM原理
  • 原文地址:https://www.cnblogs.com/gavinYang/p/3929564.html
Copyright © 2011-2022 走看看