`
地方疙瘩人
  • 浏览: 37589 次
  • 性别: 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四个依赖的Jar包

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的一个重要模块,它通过提供声明式的方式来实现面向切面编程,从而简化了应用程序的开发和维护。在Spring AOP中,我们无需深入到每个...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)...对于希望深入了解Spring AOP原理与实践的读者来说,掌握以上概念将是开启面向方面编程之旅的第一步。

    第3章 Spring AOP.ppt

    Spring AOP,全称为Spring面向切面编程,是Java EE企业级应用开发中的一个重要组成部分。它提供了一种在不改变原有代码的情况下,通过添加额外功能(如日志、事务管理)来增强程序的能力。AOP的主要目标是解决传统...

    第四章:Spring AOP API 设计模式1

    5. **单例模式(Singleton)**:Spring AOP中的`SingletonTargetSource`保证了每个目标对象只被创建一次,实现了单例模式,确保在整个应用程序中只有一个共享的实例存在,提高了资源利用效率。 6. **适配器模式...

    SpringAOP介绍1

    - 第一个`*`表示任意返回类型。 - `com.sample.service.impl`是包名,`..`表示当前包及其子包。 - 第二个`*`表示所有类。 - `*`后面跟着`(..)`表示任何方法名,其中`..`表示任意参数类型。 AspectJ的`execution`...

    spring aop 自定义切面示例

    创建自定义切面的第一步是定义一个切面类。这个类通常会包含通知(advice),即在特定连接点(join point)执行的代码。Spring支持五种不同类型的通知:前置通知(before)、后置通知(after)、返回后通知(after ...

    spring aop_aopalliance.jar_aspectjweaver.jar

    AspectJ是Spring AOP支持的一个强大的第三方AOP框架,它提供了更强大的面向切面编程能力,包括类型级别的切面和编译时/加载时织入。`aspectjweaver.jar`是AspectJ的织入代理,负责在运行时将切面织入到应用程序的类...

    spring切面AOP所使用的jar包

    Spring AOP基于代理模型,而AspectJ则是一个完整的AOP编译器,可以在编译时或运行时进行织入。Spring AOP的切入点表达式语法相对较简单,而AspectJ的切入点表达式更强大且灵活。 5. **使用步骤**: - 配置Spring ...

    Spring-AOP.rar_spring aop 日志

    在"Java Web 程序设计 第12章 Spring AOP"中,你可能会学习到如何在Spring中配置和使用AOP。首先,你需要导入Spring AOP的相关依赖,如`spring-aop`和`aspectjweaver`。然后,你可以定义一个切面类,这个类包含日志...

    Spring之AOP介绍

    // 第一次调用 login.login(); // 第二次调用 login.login(); // 第三次调用 ``` 5. **配置文件**: ```xml &lt;bean id="advice" class="org.nitpro.aop.before.LoginBeforeAdvice" /&gt; ...

    第五章:Spring AOP 在 Spring Framework 内部应用1

    Spring AOP,即Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下对程序进行功能增强的技术。本章主要探讨了Spring AOP在Spring框架内部的多种应用,...

    第一个spring程序

    标题 "第一个spring程序" 暗示我们即将探讨的是如何创建和运行一个基本的Spring框架应用。Spring是Java开发中最广泛使用的开源框架,它提供了一个全面的编程和配置模型,旨在简化企业级应用的开发。 在Java世界里,...

    spring AOP 小例子

    首先,我们来看第一个例子——Spring_AOP_Demo01。在这个例子中,我们可能会涉及到以下几个关键知识点: 1. **AOP核心概念**:AOP允许开发者定义“横切关注点”(cross-cutting concerns),即那些跨越多个对象的...

    第九章 Spring4 AOP

    标题 "第九章 Spring4 AOP" 指的是Spring框架中的面向切面编程(Aspect-Oriented Programming,简称AOP)部分。AOP是Spring框架的核心特性之一,它允许开发者在不修改原有业务代码的情况下,对系统进行横切关注点的...

    第二章:Spring AOP 基础1

    在本章"Spring AOP 基础1"中,我们主要探讨了Spring AOP(面向切面编程)的核心概念和实现方式。AOP是一种编程范式,它允许程序员定义"切面",这些切面封装了跨越多个对象的横切关注点,如日志、事务管理等。以下是...

    spring aop配置常用jar包

    Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了在应用程序中实现切面编程的能力。AOP允许开发者定义“方面”,这些方面可以包含业务逻辑的各个部分,比如日志...

    第三章:Spring AOP API 设计与实现1

    Spring AOP API的设计与实现是一个复杂而灵活的系统,它通过AOP代理、Advisor、Pointcut和Advice等组件,实现了对应用程序的横切关注点的解耦和封装,从而提高了代码的可维护性和复用性。理解并熟练运用这些概念和...

    spring aop

    Spring AOP,全称为Spring面向切面编程,是Spring框架中的一个重要组成部分,它引入了“切面”的概念,使得我们可以在不修改业务代码的情况下,实现对程序行为的统一管理和控制。这种编程模式在处理系统中的横切关注...

    SpringAOP例子

    《SpringAOP实战示例——基于Spring in action 2ed chapter4》 Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许我们通过分离关注点来编写更整洁、可维护的代码。在"Spring in action 2nd edition"的...

Global site tag (gtag.js) - Google Analytics