`
jwhandsome521
  • 浏览: 1239 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第一个AOP程序开发实例

 
阅读更多
    spring用过,但是没有系统的学习过,最近工作不是很忙,所以找了本书(SPRING实战)学习下,然后在这里也算做个笔记吧。
    一直都知道spring有两大宝:IOC和AOP。AOP在曾经做的项目中没有用到,所以一直不甚明白。这次机会让我可以一点点打开其神秘面纱
    下面开始介绍我的小程序了:
    定义Performer接口:
package com.study.spring.aop; 

public interface Performer { 
    public void perform(); 
}


    定义一个Performer的实现类Juggler:
package com.study.spring.aop;

public class Juggler implements Performer {	
	private int bagBeans = 3;	
	public Juggler() {}	
	public Juggler(int bagBeans) {
		this.bagBeans = bagBeans;
	}	
	public void perform() {
		System.out.println("perform" + bagBeans);
	}
}



    定义切面类
package com.study.spring.aop;

public class Audience {
	public void takeSeats() {
		System.out.println("The audience is taking their seats");
	}
	public void turnOffCellphones() {
		System.out.println("The audience is turning off their cellphones");
	}
	public void applaud() {
		System.out.println("CLAP CLAP CLAP CLAP CLAP CLAP ");
	}
	public void demandRefund() {
		System.out.println("Boo! We want our money back");
	}
}

     spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
           http://www.springframework.org/schema/aop
		   http://www.springframework.org/schema/aop/spring-aop-4.1.xsd"
	xmlns:aop="http://www.springframework.org/schema/aop">

	<bean id="juggler" class="com.study.spring.aop.Juggler">
		<constructor-arg value="15" />
	</bean>

	<bean id="audience" class="com.study.spring.aop.Audience" />

	<aop:config>
		<aop:aspect ref="audience">
			<aop:pointcut id="performance"
				expression="execution(* com.study.spring.aop.Performer.perform(..))" />

			<aop:before pointcut-ref="performance" method="takeSeats" />
			<aop:before pointcut-ref="performance" method="turnOffCellphones" />
			<aop:after-returning pointcut-ref="performance"
				method="applaud" />
			<aop:after-throwing pointcut-ref="performance"
				method="demandRefund" />

		</aop:aspect>
	</aop:config>
</beans>


    定义测试类:
package com.study.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.study.spring.aop.Performer;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext ctx = null;
		ctx = new ClassPathXmlApplicationContext("com/study/spring/spring.xml");
		Performer performer = (Performer) ctx.getBean("juggler");
		performer.perform();
	}

}


    执行结果:
The audience is taking their seats
The audience is turning off their cellphones
perform15
CLAP CLAP CLAP CLAP CLAP CLAP 
分享到:
评论

相关推荐

    Apect c++ 教程 + 实例 +论文 +期刊 AOP 打包下载

    第1 届是2002 年4 月在荷兰Enschede 召开,第2 届是 2003 年3 月在美国波士顿召开,第3 届是2004 年3 月在英国Lancaster 召开,第4 届将于 2005 年3 月在美国芝加哥召开。前三届的与会者包括美国、加拿大、荷兰、...

    Spring 实例源码

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 在这篇由三部分组成的 ...

    java web开发技术大全

    3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得...

    java面试题

    Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求...

    基于生态农业的电子商务微信小程序毕业设计(论文).docx

    第一章 绪论 2 1.1课题研究的意义 2 1.2背景 2 1.2.1课题研究在国内外的研究现状和发展趋势 2 第二章 需求采集与分析 3 2.1需求采集 3 2.2需求分析 3 第三章 开发中采用的编程思想 5 3.1AOP 面向切面编程思想 ...

    JAVA程序开发大全---上半部分

    本书内容精练、重点突出、实例丰富,是Java程序开发人员必备的参考书,同时也可作为高等院校计算机及相关专业的教材。 图书目录 第1章 初识MyEclipse 1 1.1 MyEclipse简介 1 1.2 MyEclipse的安装 1 1.2.1 JDK的...

    java web技术开发大全(最全最新)

    3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3...

    《Java Web编程宝典(十年典藏版)》光盘源码

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    spring.net中文手册在线版

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...

    Spring面试题

    AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将...

    asp.net知识库

    Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...

    J2EE应用开发详解

    141 9.1.2 JSF应用程序配置 142 9.2 一个简单的JSF应用 142 9.2.1 JSF应用程序开发步骤 143 9.2.2 用户登录实例 143 9.3 JSF应用程序架构 147 9.3.1 JSF请求处理生命周期 147 9.3.2 JSF事件驱动模型 148 9.3.3 JSF...

    ASP.NET编程宝典(十年典藏版)》光盘源码1

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    wxa::vulcan_salute: 渐进式小程序开发框架。轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发体验

    渐进式小程序开发框架 wxa.js 轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发...:alien: 多实例 一次性编译出多个三方项目或其他平台的小程序,如头

    Java Web编程宝典

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    《ASP.NET编程宝典(十年典藏版)》光盘源码2

    第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

Global site tag (gtag.js) - Google Analytics