第一步:在web.xml中增加以下的listener

	<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<!-- 默认去这个地方找 spring的配置文件并载入 default: /WEB-INF/applicationContext.xml -->
</listener>
<!--整个应用的參数配置,上面的listener启动时会去读这个配置-->
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> -->
<param-value>classpath:beans.xml</param-value>
</context-param>

第二步:得让struts2找spring去要Action的生成

   先增加struts2-spring -plugin-2.1.6.jar

然后在Action前面就能够加@Component 了

@component("user")

public class UserAction  extends ActionSupport{。。。省略。。。

}

@Component("user")
@Scope("prototype")
public class UserAction extends ActionSupport { private String username;
private String password;
private String password2; private UserManager um; public UserManager getUm() {
return um;
} @Resource(name="userManager")
public void setUm(UserManager um) {
this.um = um;
} @Override
public String execute() throws Exception {
User u = new User();
u.setUsername(username);
u.setPassword(password);
if(um.exists(u)) {
return "fail";
}
um.add(u);
return "success";
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getPassword2() {
return password2;
} public void setPassword2(String password2) {
this.password2 = password2;
}

struts2已启动就会读配置文件 (有多个。eg:struts2.xml,struts2-spring -plugin.xml.....),先读struts2-default.xml,然后struts2-spring-plugin.xml,再度struts.xml,再struts.properties,最后读web.xml   ,webApliacation 一启动。我们的spring容器就启动了  。然后去找配置文件(

<param-value>classpath:beans.xml</param-value>

),找到之后,初始化bean。

这样struts.xml 配置时 class="XXX",xxx就能够不是详细的Action类了,能够是和前面的name,也就是UserAction 前面的@Component("user")的user了。

通过配置ContextLoaderListener监听器,使容器启动时,自己主动载入applicationContext配置,

由于它实现了ServletContextListener这个接口。容器启动时会自己主动运行它实现的方法。

在Struts2里面嵌入Spring的更多相关文章

  1. 整合Struts2框架和Spring框架

    -----------------------siwuxie095                                 整合 Struts2 框架和 Spring 框架         1 ...

  2. Spring与Struts2整合VS Spring与Spring MVC整合

    Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的 ...

  3. 在Struts2中集成Spring详细讲解

    Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术. 所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到"工厂" ...

  4. eclipse环境下基于已构建struts2项目整合spring+hibernate

    本文是基于已构建的struts2项目基础上整合 spring+hibernate,若读者还不熟悉struts2项目,请先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 ...

  5. 整合Spring+Struts2+Mybatis加spring单元测试等

    前言 自己是在CentOS7的IntelliJ IDEA里开发的,里面中文输入法有问题经常用不了,所以这里用了很多chinglish,希望不要介意: 一:pom依赖 <?xml version= ...

  6. Struts2学习-struts+spring

    学习帮助网址:http://www.cnblogs.com/S-E-P/archive/2012/01/18/2325253.html http://blog.csdn.net/ad921012/ar ...

  7. struts2+spring的两种整合方式

    也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...

  8. Spring MVC和Struts2的比较的优点

    Spring MVC和Struts2的区别: 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的.以前认为filter是 ...

  9. Spring MVC与Struts2的区别

    1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能:spring会稍微比struts快.spring mvc是基于方法的设 ...

随机推荐

  1. leyou_01_自定义异常处理器

    1.自定义异常处理器,当程序发生异常时可以我们可以自己定义返回的,状态码和状态信息 2.当异常发生时调用我们的自定义异常 @RestController @RequestMapping("i ...

  2. Golang数据库操纵对IN语句的支持

    一: 在实际的工程项目中,SQL通常使用预编译的形式进行执行操纵,可以有效的防止SQL注入的风险,提高编码的规范性.golang中使用sqlx进行sql查询的时候,在使用in语句在一个集合中查询的时候 ...

  3. Python学习之--数字转人民币读法(解决问题的方法很重要)

    效果图: 实现代码: money = float(input("Please input the money:"))cop = int(money)Num = ['零','壹',' ...

  4. GULP入门(一)

    1.首先要先装node.然后在命令行里安装全局的gulp: npm install --global gulp 这是gulp在的生成的位置 2.接下来,我们需要将gulp安装到项目本地 npm ins ...

  5. OpenCV2.4和OpenCV3之间函数的转变

    OpenCV3里面没有自带opencv-contrib,需要自己手动安装,也很简单,直接在命令行里面打:pip install opencv-contrib-python 就能安装好了 OpenCV3 ...

  6. yum与rpm常用选项

    rpm常用的命令组合: rpm 1.对系统中已安装软件的查询-q:查询系统已安装的软件-qa:查询系统所有已安装包-qf:查询一个已经安装的文件属于哪个软件包-ql:查询已安装软件包都安装到何处-qi ...

  7. javascript基础:dom

    Dom: * 概念:Document Object  Model    文档对象模型 * 将标记语言文档的各个组成部分,封装成对象,可以使用这些对象,对标记语言文档进行CRUD的动态操作 *    D ...

  8. 入门servlet:request获取请求体数据

    @WebServlet("/RequestDemo5") public class RequestDemo5 extends HttpServlet { protected voi ...

  9. 珂朵莉树(ODT)笔记

    珂朵莉树,又叫老司机树($Old\, Driver \, Tree$) 是一种暴力出奇迹,就怕数据不随机的数据结构. 适用 需要用线段树维护一些区间修改的信息…… 像是区间赋值(主要),区间加…… 原 ...

  10. 使用junit单元测试,报Cannot instantiate test(s): java.lang.SecurityException: Prohibited package name: java.com.com.test

    在测试类中不能一级包名不能以java开头, 将包改为com.com.test就好了.