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
分享到:
相关推荐
第1 届是2002 年4 月在荷兰Enschede 召开,第2 届是 2003 年3 月在美国波士顿召开,第3 届是2004 年3 月在英国Lancaster 召开,第4 届将于 2005 年3 月在美国芝加哥召开。前三届的与会者包括美国、加拿大、荷兰、...
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 在这篇由三部分组成的 ...
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 获得...
Struts1只是在第一次请求的时候创建一个action实例,以后每次相同的请求都直接从内存中去读取,它是单例模式,安全性较差。 Struts2是如何实现MVC模式的? 答:在Struts2里面是将每次页面的请求进行处理,然后将请求...
第一章 绪论 2 1.1课题研究的意义 2 1.2背景 2 1.2.1课题研究在国内外的研究现状和发展趋势 2 第二章 需求采集与分析 3 2.1需求采集 3 2.2需求分析 3 第三章 开发中采用的编程思想 5 3.1AOP 面向切面编程思想 ...
本书内容精练、重点突出、实例丰富,是Java程序开发人员必备的参考书,同时也可作为高等院校计算机及相关专业的教材。 图书目录 第1章 初识MyEclipse 1 1.1 MyEclipse简介 1 1.2 MyEclipse的安装 1 1.2.1 JDK的...
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...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...
AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将...
Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...
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...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
渐进式小程序开发框架 wxa.js 轻量级的渐进式小程序开发框架,专注于小程序原生开发,提供更好的工程化、代码复用能力,提高开发效率并改善开发...:alien: 多实例 一次性编译出多个三方项目或其他平台的小程序,如头
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...