`
地方疙瘩人
  • 浏览: 36951 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

我的第一个 Spring AOP 程序

阅读更多
照着书写了第一个Spring AOP
客户买果浆,老板打招呼
Customer类
package AOP.BEAN;

public class Customer {
	String name = null;

	public Customer(String name) {
		super();
		// TODO Auto-generated constructor stub
		this.name = name;
	}

	public String getName() {
		return name;
	}
}

KwikEMart接口
package AOP.INTERFACE;

import AOP.BEAN.Customer;

public interface KwikEMart {
	public void buySquishee(Customer customer);
}

AppKwikEMart实现KwikEMart
package AOP.CLASS;

import AOP.BEAN.Customer;
import AOP.INTERFACE.KwikEMart;

public class AppKwikEMart implements KwikEMart {

	public void buySquishee(Customer customer) {
		// TODO Auto-generated method stub
		System.out.println(customer.getName()+" buy a Squishee");
	}

}

WelcomeAdvice实现MethodBeforeAdvice
package AOP.REFLECT;

import java.lang.reflect.Method;

import org.springframework.aop.MethodBeforeAdvice;

import AOP.BEAN.Customer;

public class WelcomeAdvice implements MethodBeforeAdvice {

	public void before(Method arg0, Object[] arg1, Object arg2)
			throws Throwable {
		// TODO Auto-generated method stub
		System.out.println(arg0);
		System.out.println("Hello "+((Customer)arg1[0]).getName());
	}

}

bean-BuySquishee.xml
<?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-2.0.xsd">     
   
    <bean id="AppKwikEMart" class="AOP.CLASS.AppKwikEMart"></bean>     
       
    <bean id="WelcomeAdvice" class="AOP.REFLECT.WelcomeAdvice"></bean>     
       
    <bean id="KwikEMart" class="org.springframework.aop.framework.ProxyFactoryBean">     
        <property name="proxyInterfaces" value="AOP.INTERFACE.KwikEMart"/>     
        <property name="target" ref="AppKwikEMart"/>     
        <property name="interceptorNames">     
            <list>     
                <value>WelcomeAdvice</value>     
            </list>     
        </property>     
    </bean>     
</beans>    

main类
package AOP.MAIN;
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.FileSystemXmlApplicationContext;

import AOP.BEAN.Customer;
import AOP.INTERFACE.KwikEMart;
public class buySquishee {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext ctx=new FileSystemXmlApplicationContext("AOP/XML/bean-BuySquishee.xml"); 
		KwikEMart kem = (KwikEMart)ctx.getBean("KwikEMart");
		kem.buySquishee(new Customer("pig"));
	}
}

运行结果
public abstract void AOP.INTERFACE.KwikEMart.buySquishee(AOP.BEAN.Customer)
Hello pig
pig buy a Squishee
分享到:
评论

相关推荐

    关于Spring AOP,除了动态代理、CGLIB,你还知道什么?

    第一节将介绍 AOP 的相关概念,若熟悉可跳过,第二节中结合源码介绍 Spring 是如何实现 AOP 的各概念。 1. AOP 概念 1.1 JoinPoint 进行织入操作的程序执行点。 常见类型: 方法调用(Method Call):某个方法被调用...

    spring2.0技术手册 (扫描版)

    第1章认识Spring ...Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本 喜欢Java web开发的童鞋可以上手Spring MVC

    spring第四个版本分析图示

    Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大...

    Spring 实例源码

    在这篇由三部分组成的 Spring 系列 的第 1 部分中,我将介绍 Spring 框架。我先从框架底层模型的角度描述该框架的功能,然后将讨论两个最有趣的模块:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器。接着将...

    Spring in Action 中文版 第2版 第一部分

    第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。 目 录 第一部分 spring的核心 第1章 开始spring之旅 第...

    Java高级面试第二套10.无处不在的Spring AOP事务及踩过的坑

    1.第二步,可以在5分钟内实现; 2.成本3元(腾讯云支持微信小程序2017年推广期间,3元腾讯云提供整套服务器和系统) 3.腾讯云默认分配:1.云服务器;2.云数据库;3.域名;4.小程序支持系统; 4.只要

    Spring in Action 中文版 第2版 第二部分

    第二部分以第一部分介绍的DI和AOP特性为基础,叙述了如何将这两个概念应用到应用程序的数据和业务层中。第三部分介绍了Spring构建 Web应用程序的各种方式。 目 录 第一部分 spring的核心 第1章 开始spring之旅 第...

    spring.net中文手册在线版

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

    Java Web程序设计教程2

    第1章 web应用开发简介 1 第2章 java ee运行及开发环境 15 第3章 jsp和servlet 33 第4章 sql与jdbc 64 第5章 struts 2框架基础 80 第6章 struts 2高级应用 110 第7章 struts 2中应用模板语言 145 第8...

    Java Web程序设计教程4

    第1章 web应用开发简介 1 第2章 java ee运行及开发环境 15 第3章 jsp和servlet 33 第4章 sql与jdbc 64 第5章 struts 2框架基础 80 第6章 struts 2高级应用 110 第7章 struts 2中应用模板语言 145 第8...

    SpringDemo:Spring 框架知识案例

    1.创建第一个 Spring 程序案例 2.Spring IoC案例 3.Spring Bean案例 4.Spring 表达式语言案例 5.Spring xml 配置案例 6.Spring Annontation案例 7.Spring 泛型依赖注入案例 8.Spring AOP案例 9.Spring JDBCTemplate...

    Java Web程序设计教程1

    第1章 web应用开发简介 1 第2章 java ee运行及开发环境 15 第3章 jsp和servlet 33 第4章 sql与jdbc 64 第5章 struts 2框架基础 80 第6章 struts 2高级应用 110 第7章 struts 2中应用模板语言 145 第8...

    SpringIOC和AOP原理设计模式

    在接触Spring的过程中,听到最多的无非两个名词,一个是控制反转一个是依赖注入。...AOP最多听到的就是面向切面编程,那对于这个名词,我第一次听到的时候也是不能理解的。下面用一个图和语言来进行描述:切面

    Java Web程序设计教程3

    第1章 web应用开发简介 1 第2章 java ee运行及开发环境 15 第3章 jsp和servlet 33 第4章 sql与jdbc 64 第5章 struts 2框架基础 80 第6章 struts 2高级应用 110 第7章 struts 2中应用模板语言 145 第8...

    Java Web程序设计教程5

    第1章 web应用开发简介 1 第2章 java ee运行及开发环境 15 第3章 jsp和servlet 33 第4章 sql与jdbc 64 第5章 struts 2框架基础 80 第6章 struts 2高级应用 110 第7章 struts 2中应用模板语言 145 第8...

    Spring面试题

    在对由三部分组成的 Spring 系列 的第 1 部分进行总结时,我使用了一个示例,演示了如何通过 Spring IOC 容器注入应用程序的依赖关系(而不是将它们构建进来)。 我用开启在线信用帐户的用例作为起点。对于该实现,...

    Spring攻略(第二版 中文高清版).part1

    12.2 创建第一个Spring Roo项目 486 12.2.1 问题 486 12.2.2 解决方案 486 12.2.3 工作原理 486 12.3 把现有项目导入SpringSource Tool Suite 491 12.3.1 问题 491 12.3.2 解决方案 492 12.3.3 工作...

    Spring中文帮助文档

    9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...

    java 实现AOP

     至此我们的第一次小尝试算是完成了。可以看到,采用AOP之后,日志记录和业务逻辑代码完全分开了,以后要改变日志记录的话只需要修改日志记录处理器就行了,而业务对象本身(BusinessObject)无需做任何修改。并且...

    Spring API

    9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...

Global site tag (gtag.js) - Google Analytics