`
dzgwt2004
  • 浏览: 167382 次
  • 来自: 浙江杭州
社区版块
存档分类
最新评论

学习笔记:AOP(before、after)

阅读更多
代码(转bea)
applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<!--    mypack.MethodTracing-->
<!-- Bean configuration -->
<bean id="businesslogicbean"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>mypack.IBusinessLogic</value>
</property>
<property name="target">
<ref local="beanTarget" />
</property>
<property name="interceptorNames">
<list>
<value>theTracingBeforeAdvisor</value>
<value>theTracingAfterAdvisor</value>
</list>
</property>
</bean>
<!-- Bean Classes -->
<bean id="beanTarget" class="mypack.BusinessLogic" />

<!-- Advisor pointcut definition for before advice -->
<bean id="theTracingBeforeAdvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="theTracingBeforeAdvice" />
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>

<!-- <value>.*</value>:该表达式选择advisor所关联到的一个或多个bean上的所有联结点。 -->
<!-- <value>./IBusinessLogic/.foo</value>:该表达式只选择IbusinessLogic接口上的foo()方法的联结点。-->
<!-- 如果是advisor所关联到的bean,则该表达式只选择IBusinessLogic接口上的联结点。 -->

<!-- Advisor pointcut definition for after advice -->
<bean id="theTracingAfterAdvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="theTracingAfterAdvice" />
</property>
<property name="pattern">
<value>.*</value>
</property>
</bean>

<!-- Advice classes -->
<bean id="theTracingBeforeAdvice" class="mypack.MethodTracing.TracingBeforeAdvice" />
<bean id="theTracingAfterAdvice" class="mypack.MethodTracing.TracingAfterAdvice" />

</beans>

IBusinessLogic
public interface IBusinessLogic {
	public void foo();
}

BusinessLogic
public class BusinessLogic implements IBusinessLogic {

	public void foo() 
    {
        System.out.println(
        "Inside BusinessLogic.foo()");
    }
}


TracingAfterAdvice.java
public class TracingAfterAdvice implements AfterReturningAdvice {

	public void afterReturning(Object arg0, Method arg1, Object[] arg2,
			Object arg3) throws Throwable {
		System.out.println(
		          "Hello world! (by " + 
		          this.getClass().getName() + 
		          ")");
	}

}

TracingBeforeAdvice.java
public class TracingBeforeAdvice implements MethodBeforeAdvice {

	public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
		System.out.println(
		          "Hello world! (by " + 
		          this.getClass().getName() + 
		          ")");
	}

}

main
public class MainApplication {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		 Read the configuration file
//       ApplicationContext ctx = new FileSystemXmlApplicationContext("springconfig.xml");
		
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //Instantiate an object
        IBusinessLogic testObject = (IBusinessLogic) ctx.getBean("businesslogicbean");

        // Execute the public 
        // method of the bean
        testObject.foo();
	}

}
  • 描述: 顺序图
  • 大小: 19.6 KB
分享到:
评论
6 楼 dzgwt2004 2007-01-08  
java里面有回调函数么?
我想利用AOP是否可以实现方法的回调,就像C#里面的委托一下
不知道是否可行
5 楼 magice 2007-01-08  
主要还是在用IOC,使用的多了,思维模式就越来越有spring味道了,
而AOP用的地方到不是很多,因为需要用的地方-如权限,都有现成的产品可以集成-如acegi
4 楼 piaoling 2007-01-08  
想问一下Spring里面的功能,开发时能用到多少?
3 楼 magice 2007-01-07  
AOP在项目中能够适用哪些情况呢?
用在权限的鉴权方面比较好,但是acegi框架这部分已经做的很好了,所以觉得AOP的用武之地不适很多。。。
2 楼 lighter 2007-01-05  
就我自身用过的情况来说.
Around处理用得比较多,before,after比较少一些
1 楼 raykcn 2007-01-05  
希望还有下文....

相关推荐

    spring aop 学习笔记

    本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...

    学习Spring笔记_AOP_Annotation实现和XML实现

    这篇“学习Spring笔记_AOP_Annotation实现和XML实现”主要探讨了如何在Spring中利用注解和XML配置来实现AOP的概念。 AOP,全称Aspect-Oriented Programming,是一种编程范式,旨在将关注点分离,让开发者可以更专注...

    SSH笔记-AOP

    - **@Before、@After、@Around、@AfterReturning、@AfterThrowing**:分别表示前置通知、后置通知、环绕通知、返回后通知和异常后通知,它们定义了在哪个切点上执行哪些代码。 - **@Pointcut**:定义切点表达式,...

    SpringAop学习笔记以及实现Demo

    **Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...

    Spring学习笔记(16)----使用Spring配置文件实现AOP

    在本篇Spring学习笔记中,我们将深入探讨如何利用Spring配置文件来实现面向切面编程(AOP)。面向切面编程是Spring框架的核心特性之一,它允许我们把关注点分离,将横切关注点(如日志、事务管理、权限控制等)与...

    spring ioc aop mvc boot-学习笔记.docx

    通知(advice)如前置通知、后置通知等,可以使用`@Before`, `@After`, `@Around`等注解来实现。 3. **Spring MVC(Model-View-Controller)**: Spring MVC是Spring框架提供的用于构建Web应用的模块。它遵循MVC...

    AOP学习笔记

    《AOP学习笔记》 在软件开发中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种重要的编程范式,它旨在提高代码的可读性和可维护性,通过将关注点分离来实现模块化。AOP的核心概念是切面、连接点、...

    Spring学习笔记

    ### Spring学习笔记:深入理解AOP与Annotation驱动的动态代理 #### 核心知识点解析: 在探讨Spring框架中AOP(面向切面编程)及基于Annotation的动态代理之前,我们首先需要了解AOP的基本概念及其在Spring中的实现...

    Spring学习笔记(14)----使用CGLIB实现AOP功能

    在本篇Spring学习笔记中,我们将探讨如何使用CGLIB库来实现AOP功能。 CGLIB(Code Generation Library)是一个强大的高性能的代码生成库,它被广泛用于动态代理和运行时织入AOP切面。在Spring中,如果目标类没有...

    aop实战.rar

    1. **AOP概念**:讲解面向切面编程的基本概念,包括切面、通知(Before、After、Around、After-Throwing、After-Finalizing)、连接点、切点、织入等。 2. **Spring AOP**:作为最常用的AOP实现,Spring AOP是Java...

    spring学习笔记(十一)

    标题 "spring学习笔记(十一)" 暗示了这是一篇关于Spring框架的深度学习文章,特别是关于AOP(面向切面编程)和配置方面的内容。在这个笔记中,作者可能详细探讨了Spring如何实现AOP以及如何配置相关组件。下面我们将...

    Spring学习笔记(15)----使用Spring的注解方式实现AOP

    在本篇Spring学习笔记中,我们将深入探讨如何利用Spring框架的注解方式来实现面向切面编程(AOP)。AOP是一种编程范式,它允许我们定义横切关注点,如日志、事务管理等,然后将这些关注点模块化并插入到应用程序的多...

    SpringBoot学习笔记——AOP全局统一日志管理

    【SpringBoot学习笔记——AOP全局统一日志管理】 在软件开发中,日志记录是一项至关重要的任务,它有助于追踪操作记录、系统监控以及满足审计需求。SpringBoot作为一个流行的Java微服务框架,提供了AOP(面向切面...

    SpringBoot-事务&AOP-黑马程序员学习笔记

    2. **通知(Advice)**:在特定连接点执行的代码,如前置通知(Before)、后置通知(After)、返回后通知(After Returning)、异常后通知(After Throwing)和环绕通知(Around)。 3. **切点(Pointcut)**:定义...

    spring学习笔记(七)

    总结,Spring学习笔记(七)的重点是讲解了Spring中的代理模式,包括静态代理和动态代理的概念,以及如何在AOP中应用这些代理来增强功能。通过理解这些知识,你可以更好地掌握Spring框架,提升在实际开发中的能力。

    spring学习笔记(十)

    【标题】"Spring学习笔记(十)"主要涵盖了Spring框架中的AOP(面向切面编程)这一核心概念。在Spring框架中,AOP被用来实现横切关注点,如日志记录、事务管理、性能监控等,它允许程序员将这些通用功能模块化,减少...

    SpringMVC+Mybatis学习笔记

    【SpringMVC+Mybatis学习笔记】 SpringMVC和Mybatis是Java开发中常见的两个框架,它们分别负责Web层和持久层的管理。SpringMVC是Spring框架的一部分,提供了强大的模型-视图-控制器(MVC)架构模式,用于构建高性能...

    spring mvc学习笔记

    ### Spring MVC 学习笔记之 AOP 面向切面编程详解 #### 一、AOP 概念概述 面向切面编程(Aspect Oriented Programming, AOP)是一种编程范式,它允许程序员定义“切面”来封装那些与业务逻辑本身无关的功能,比如...

Global site tag (gtag.js) - Google Analytics