开始试用Spring+struts2 注解action 的功能惊奇的发现,spring的注解居然支持继承
废话少说,上例子
所有action的超类
package com.example.actions;
import javax.annotation.Resource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.example.ActionTool;
import com.opensymphony.xwork2.ActionSupport;
@Component
@Scope("prototype")
public class AbstractAction extends ActionSupport {
protected static final Log log = LogFactory.getLog(AbstractAction.class);
private ActionTool actionTool;
public ActionTool getActionTool() {
return actionTool;
}
@Resource(name="actionTool")
public void setActionTool(ActionTool actionTool) {
this.actionTool = actionTool;
}
public String index() throws Exception{
throw new Exception("请覆盖 Action 父类方法");
}
}
package com.example.actions;
import javax.annotation.Resource;
import com.example.ActionTool;
public class HelloWorld extends AbstractAction {
private int i;
private String message;
private ActionTool atool;
public String getMessage() {
return message;
}
public String index(){
this.getActionTool().testTool();
this.getAtool().testTool();
log.info(i++);
message = "Hello World!";
return SUCCESS;
}
//@Action("/myword/say")
public String execute() {
message = "Hello World!";
return SUCCESS;
}
public ActionTool getAtool() {
return atool;
}
@Resource(name="actionTool")
public void setAtool(ActionTool atool) {
this.atool = atool;
}
}
package com.example;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
@Component("actionTool")
public class ActionTool {
protected static final Log log = LogFactory.getLog(ActionTool.class);
public void testTool(){
log.info("我是工具类");
}
}
在浏览器中键入 http://localhost:8080/iweb/hello-world
后台打印出
引用
[Line : 45 ]: Could not find property [struts.valueStack] -[com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:45)]-2009-02-04 13:08:32,343
[Line : 13 ]: 我是工具类 -[com.example.ActionTool.testTool(ActionTool.java:13)]-2009-02-04 13:08:32,343
[Line : 13 ]: 我是工具类 -[com.example.ActionTool.testTool(ActionTool.java:13)]-2009-02-04 13:08:32,343
[Line : 21 ]: 0 -[com.example.actions.HelloWorld.index(HelloWorld.java:21)]-2009-02-04 13:08:32,343
[Line : 45 ]: Could not find property [org.apache.catalina.jsp_file] -[com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:45)]-2009-02-04 13:08:32,375
[Line : 45 ]: Could not find property [struts.valueStack] -[com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:45)]-2009-02-04 13:08:32,953
[Line : 13 ]: 我是工具类 -[com.example.ActionTool.testTool(ActionTool.java:13)]-2009-02-04 13:08:32,953
[Line : 13 ]: 我是工具类 -[com.example.ActionTool.testTool(ActionTool.java:13)]-2009-02-04 13:08:32,953
[Line : 21 ]: 0 -[com.example.actions.HelloWorld.index(HelloWorld.java:21)]-2009-02-04 13:08:32,953
[Line : 45 ]: Could not find property [org.apache.catalina.jsp_file] -[com.opensymphony.xwork2.util.logging.commons.CommonsLogger.warn(CommonsLogger.java:45)]-2009-02-04 13:08:32,953
很明显,actionTool 被注入了,实例也是prototype的,每次i都是新实例变量,太方便了,以后再也不用在xml中两边都配置action实例了,哇哈哈!
分享到:
相关推荐
【基于注解的Spring+Struts2+Mybatis+Maven项目详解】 在现代Web开发中,Spring、Struts2、Mybatis和Maven是四个非常重要的组件,它们各自负责不同的职责,共同构建了一个高效、灵活且易于维护的Java Web应用。这个...
Struts2提供了一套完整的Action、Result和Interceptor机制,使得开发者可以轻松创建动态的Web应用。同时,它支持多种视图技术,如JSP、FreeMarker等。 iBatis则解决了Java中的JDBC繁琐的数据库操作问题。它允许...
在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...
Struts2与Spring的集成使得我们可以利用Spring的IoC容器管理Struts2中的Action类,进一步降低了耦合度。 MyBatis是一个持久层框架,它简化了SQL操作,将SQL语句与Java代码分离,提供了映射框架,使得开发者可以直接...
3. **配置Struts2**:设置Struts2的配置文件(如`struts.xml`),定义Action类及其对应的处理方法,同时配置拦截器链,以利用Spring的DI功能。 4. **配置MyBatis**:创建MyBatis的配置文件(如`mybatis-config.xml`...
在"Spring+Struts2+Ibatis"的整合中,通常会使用Spring作为整个应用的基础架构,提供DI和AOP功能,管理Struts2的Action和iBatis的SqlSession。Struts2作为前端控制器,处理HTTP请求,调用Spring管理的Service层方法...
2. **模型(Model)**:通常包括 POJO(Plain Old Java Object),这些对象被 Spring 管理,并通过 Struts2 的 Action 接口进行操作。 3. **视图(View)**:可能是 JSP 页面,与 Struts2 的结果配置对应,用于展示...
同时,Spring与Struts2可以通过Spring-Struts2插件无缝集成,使得Action可以直接由Spring管理,增强了系统的可测试性。 **MyBatis** 是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了更灵活的SQL操作...
可能包含了Spring、Struts和Hibernate的配置文件(如 applicationContext.xml、struts-config.xml 或 struts2.xml、hibernate.cfg.xml),以及对应的实体类、DAO接口及其实现、Service接口及其实现、Action类等源码...
【基于注解的Spring+Struts2+Mybatis】是一个常见的Java Web开发框架组合,用于构建高效、可维护性高的应用程序。在这个项目中,Spring作为整体的容器管理依赖注入(DI),Struts2负责处理HTTP请求和视图展示,而...
具体来说,Spring可以通过其的ApplicationContext加载Struts的Action和DAO类,这样可以实现对这些组件的依赖注入,提高灵活性。同时,Spring的事务管理可以跨多个服务(包括Struts的Action和Hibernate的DAO)进行...
标题中的"spring+struts2+mybatis jar包"指的是一个经典的Java企业级应用程序开发框架组合,通常称为SSM框架。这个框架集合了Spring、Struts2和MyBatis三个核心组件,它们各自负责不同的职责,协同工作以构建高效、...
在Struts2+Spring+MyBatis的架构中,MyBatis负责与数据库交互,通过XML或注解方式配置SQL语句,使得数据库操作更加灵活且易于维护。 **整合过程** 1. **配置Spring**:创建Spring配置文件,定义Bean,包括Action、...
SSM框架,即Spring、Struts2和MyBatis的集成,是Java Web开发中常见的三大框架组合。这个框架组合提供了完整的控制层、业务层和数据访问层的解决方案,极大地提高了开发效率。下面将详细解释这三个框架的核心概念、...
在整合Spring时,我们可以使用Spring-Struts2插件,使得Action类可以直接从Spring容器中获取服务层对象,这样既可以利用Spring的依赖注入特性,又保持了Struts2的简单易用性。 接下来是iBatis,它是一个轻量级的...
2. **配置Struts**:编写struts.xml,定义Action类和对应的Action Mapping,配置结果页面跳转。 3. **实现Hibernate**:为User实体创建对应的Java类,并使用Hibernate的注解进行配置。编写UserDAO接口和实现类,...
Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自负责应用程序的不同层面:Spring作为全面的容器和依赖注入框架,负责管理对象和提供事务处理;Struts则是一个MVC(模型-视图-控制器)框架,主要...
SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...
本项目"maven+struts2+spring+mybatis+springMVC"就是一个典型的Java Web应用开发组合,利用了这些框架的优势进行集成,实现了数据持久化、业务逻辑处理、视图展示以及依赖管理等多个层面的功能。 首先,我们来详细...