`
kjj
  • 浏览: 171609 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

Spring+struts2 注解action

阅读更多
开始试用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实例了,哇哈哈!
2
2
分享到:
评论
1 楼 zhiweiv 2009-05-23  
   spring的注解一直都支持继承

相关推荐

    基于注解的Spring+Struts2+Mybatis+Maven项目

    【基于注解的Spring+Struts2+Mybatis+Maven项目详解】 在现代Web开发中,Spring、Struts2、Mybatis和Maven是四个非常重要的组件,它们各自负责不同的职责,共同构建了一个高效、灵活且易于维护的Java Web应用。这个...

    spring+struts2+ibatis整合的jar包

    Struts2提供了一套完整的Action、Result和Interceptor机制,使得开发者可以轻松创建动态的Web应用。同时,它支持多种视图技术,如JSP、FreeMarker等。 iBatis则解决了Java中的JDBC繁琐的数据库操作问题。它允许...

    Spring+Struts2+hibernate+Redis整合

    在IT行业中,SSH(Spring、Struts2、Hibernate)是一个经典的Java Web开发框架组合,而Redis则是一个高性能的键值存储系统,常用于缓存和数据持久化。将SSH与Redis整合,可以提升应用程序的性能和响应速度。下面将...

    Spring+Struts2+MyBatis完整框架

    Struts2与Spring的集成使得我们可以利用Spring的IoC容器管理Struts2中的Action类,进一步降低了耦合度。 MyBatis是一个持久层框架,它简化了SQL操作,将SQL语句与Java代码分离,提供了映射框架,使得开发者可以直接...

    spring+struts2+mybatis整合

    3. **配置Struts2**:设置Struts2的配置文件(如`struts.xml`),定义Action类及其对应的处理方法,同时配置拦截器链,以利用Spring的DI功能。 4. **配置MyBatis**:创建MyBatis的配置文件(如`mybatis-config.xml`...

    Spring+Struts2+Ibatis

    在"Spring+Struts2+Ibatis"的整合中,通常会使用Spring作为整个应用的基础架构,提供DI和AOP功能,管理Struts2的Action和iBatis的SqlSession。Struts2作为前端控制器,处理HTTP请求,调用Spring管理的Service层方法...

    Spring+struts2

    2. **模型(Model)**:通常包括 POJO(Plain Old Java Object),这些对象被 Spring 管理,并通过 Struts2 的 Action 接口进行操作。 3. **视图(View)**:可能是 JSP 页面,与 Struts2 的结果配置对应,用于展示...

    struts2+spring+mybatis+easyui的实现

    同时,Spring与Struts2可以通过Spring-Struts2插件无缝集成,使得Action可以直接由Spring管理,增强了系统的可测试性。 **MyBatis** 是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了更灵活的SQL操作...

    spring +struts + hibernate 例子

    可能包含了Spring、Struts和Hibernate的配置文件(如 applicationContext.xml、struts-config.xml 或 struts2.xml、hibernate.cfg.xml),以及对应的实体类、DAO接口及其实现、Service接口及其实现、Action类等源码...

    基于注解的Spring+Struts2+Mybatis

    【基于注解的Spring+Struts2+Mybatis】是一个常见的Java Web开发框架组合,用于构建高效、可维护性高的应用程序。在这个项目中,Spring作为整体的容器管理依赖注入(DI),Struts2负责处理HTTP请求和视图展示,而...

    spring+struts+hibernate框架

    具体来说,Spring可以通过其的ApplicationContext加载Struts的Action和DAO类,这样可以实现对这些组件的依赖注入,提高灵活性。同时,Spring的事务管理可以跨多个服务(包括Struts的Action和Hibernate的DAO)进行...

    spring+struts2+mybatis jar包

    标题中的"spring+struts2+mybatis jar包"指的是一个经典的Java企业级应用程序开发框架组合,通常称为SSM框架。这个框架集合了Spring、Struts2和MyBatis三个核心组件,它们各自负责不同的职责,协同工作以构建高效、...

    struts2+spring+mybatis框架

    在Struts2+Spring+MyBatis的架构中,MyBatis负责与数据库交互,通过XML或注解方式配置SQL语句,使得数据库操作更加灵活且易于维护。 **整合过程** 1. **配置Spring**:创建Spring配置文件,定义Bean,包括Action、...

    spring+struts2+mybatis

    SSM框架,即Spring、Struts2和MyBatis的集成,是Java Web开发中常见的三大框架组合。这个框架组合提供了完整的控制层、业务层和数据访问层的解决方案,极大地提高了开发效率。下面将详细解释这三个框架的核心概念、...

    spring+struts2+ibatis简单例子

    在整合Spring时,我们可以使用Spring-Struts2插件,使得Action类可以直接从Spring容器中获取服务层对象,这样既可以利用Spring的依赖注入特性,又保持了Struts2的简单易用性。 接下来是iBatis,它是一个轻量级的...

    hibernate+spring+struts一个简单例子

    2. **配置Struts**:编写struts.xml,定义Action类和对应的Action Mapping,配置结果页面跳转。 3. **实现Hibernate**:为User实体创建对应的Java类,并使用Hibernate的注解进行配置。编写UserDAO接口和实现类,...

    Spring + Struts +Hibernate简单学习源码

    Spring、Struts和Hibernate是Java开发中非常经典的三大框架,它们各自负责应用程序的不同层面:Spring作为全面的容器和依赖注入框架,负责管理对象和提供事务处理;Struts则是一个MVC(模型-视图-控制器)框架,主要...

    SSH项目(spring+hibernate+struts2)

    SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...

    maven+struts2+spring+mybatis+springMVC

    本项目"maven+struts2+spring+mybatis+springMVC"就是一个典型的Java Web应用开发组合,利用了这些框架的优势进行集成,实现了数据持久化、业务逻辑处理、视图展示以及依赖管理等多个层面的功能。 首先,我们来详细...

Global site tag (gtag.js) - Google Analytics