- 浏览: 9750 次
- 性别:
文章分类
最新评论
切面(Aspect):
通常在目标方法执行前后需要执行的方法(如事务、日志、权限),这些方法我们封装到一个类里面,这个类就叫切面。
连接点(joinpoint)
spring里面的连接点指需要切入的方法,通常这个joinpoint可以作为一个参数传入到切面的方法里面(非常有用的一个东西)。
通知(Advice)
通知就是切面里面方法的具体实现,分为前置、后置、最终、异常环绕通知。
切入点(Pointcut)
所谓切入点,通常是指一个表达式,按照包的匹配来切入进去。
目标对象(target)
代理的目标对象。
以下是spring aop的一个实现
先写切面类,代码如下:
然后写业务逻辑类:
配置文件代码:
最后的测试类:
以上是一个AOP的一个大致实现。
最后关于切入表达式:
execution()里面的内容
execution( [修饰符] 返回值类型 [类的全限定名.]方法名(参数) )
通常在目标方法执行前后需要执行的方法(如事务、日志、权限),这些方法我们封装到一个类里面,这个类就叫切面。
连接点(joinpoint)
spring里面的连接点指需要切入的方法,通常这个joinpoint可以作为一个参数传入到切面的方法里面(非常有用的一个东西)。
通知(Advice)
通知就是切面里面方法的具体实现,分为前置、后置、最终、异常环绕通知。
切入点(Pointcut)
所谓切入点,通常是指一个表达式,按照包的匹配来切入进去。
目标对象(target)
代理的目标对象。
以下是spring aop的一个实现
先写切面类,代码如下:
public class AopDemo { public void beforeAdvice(){ System.out.println("我是前置通知"); } /* * 如果目标方法发生异常,则后置通知不会执行 */ public void afterReturnAdvice(){ System.out.println("我是后置通知"); } /* * 如果目标方法发生异常,则最终方法还是会执行 */ public void afterAdvice(JoinPoint joinPoint){ System.out.println(joinPoint.getTarget());//可以获取到目标对象 System.out.println(joinPoint.getArgs()[0]);//获取目标方法的参数 System.out.println("我是最终通知"); } /* * 如果发生异常才执行此方法,否则不执行 */ public void exceptionAdvice(){ //实际的时候如果发生异常,可以跳转错误页面,也可以发邮件给管理员告知出了异常 System.out.println("我是异常通知"); } public void aroundAdvice(){ // System.out.println("我是环绕通知"); } }
然后写业务逻辑类:
public class GoodsImpl { public void save(Goods goods){ System.out.println("save goods"); } public void delete(Goods goods){ System.out.println("delete goods"); } }
配置文件代码:
<!--业务逻辑类 --> <bean id="goodsImpl" class="com.alt.bean.GoodsImpl"/> <!-- 切面 --> <bean id="aop" class="com.alt.aop.AopDemo"/> <aop:config> <aop:aspect ref="aop"> <aop:after method="afterAdvice" pointcut="execution(* com.alt.bean.GoodsImpl.save(..))"/> </aop:aspect> </aop:config>
最后的测试类:
public class AopTest { private static ClassPathXmlApplicationContext context = null; private static GoodsImpl goodsImpl = null; @BeforeClass public static void init(){ context = new ClassPathXmlApplicationContext("applicationContext-*.xml"); goodsImpl = (GoodsImpl) context.getBean("goodsImpl"); } @Test public void testAop(){ System.out.println("start"); Goods goods = new Goods(1, "大米", 23.4); goodsImpl.save(goods); } }
以上是一个AOP的一个大致实现。
最后关于切入表达式:
execution()里面的内容
execution( [修饰符] 返回值类型 [类的全限定名.]方法名(参数) )
发表评论
-
逆波兰算法
2015-07-16 00:44 0是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是 ... -
jdk1.6
2015-07-02 01:49 0jdk1.6 -
4455
2015-06-30 00:38 0是反反复复凤飞飞凤飞飞凤飞飞凤飞飞凤飞飞凤飞飞 -
103wenti
2015-06-13 14:01 0103wentijiejue -
架构狮之路路
2015-05-20 05:08 0架构师之路路路哈哈哈哈哈哈哈哈哈 -
protobuf
2015-05-16 08:38 0是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是是 ... -
158222
2015-04-18 02:16 0fghhgbbbbbbbbbbbbbbbb http://ww ... -
nio4
2015-04-11 09:57 0agggggggggggggggggggggggggg -
sssss
2015-03-19 02:29 0for (;;) { if (ne ... -
webkaifa
2015-02-11 03:29 0zheiyangzhend haome -
netty的所有jar包
2014-09-28 00:03 0netty的所有jar包 -
nio4
2014-09-28 00:01 0nio4编写代码 -
33是嘎嘎
2014-09-26 18:46 0啊嘎嘎啊哈哈 -
5896
2014-09-26 18:38 0Ggagagagh -
455
2014-09-26 18:21 0458952341144 -
sddsafa
2014-09-24 23:11 0阿里卡特,朗讯,RMIUFO
相关推荐
一、理解AOP概念 AOP的核心思想是将分散在各个模块中的交叉性代码(如日志、事务处理)抽取出来,形成独立的切面,以便于复用和维护。它提供了一种模块化的方式,使得我们可以专注于编写核心业务代码,而无需关心...
### AOP的相关概念 #### AOP概述 AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想,它的核心在于将程序中的横切关注点(Cross-cutting Concerns)从业务逻辑中抽离出来,形成独立的组件,从而使得...
### AOP的相关概念 **AOP**,全称为**Aspect-Oriented Programming**,即面向切面编程。这种编程范式旨在将横切关注点(Cross-cutting Concerns)从业务逻辑中分离出来,以便更好地模块化这些关注点。简单来说,AOP...
本文将深入探讨Spring AOP的配置及其在模拟MVC模式下的应用,以"SpringAopMvcDemo"为例,解析服务层异常处理的实现。 首先,我们需要理解AOP的基本概念。AOP是一种编程范式,旨在提高代码的可复用性和可维护性,...
AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要概念,它提供了一种将关注点(如日志、事务管理等)与核心业务逻辑分离的方式,从而实现代码的模块化和可重用性。AOP通过定义切面...
**Spring AOP 配置实现详解** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它允许我们通过分离关注点来简化应用程序的开发。在传统的面向对象编程中,业务逻辑与日志记录...
首先,了解AOP的基本概念。AOP是一种编程范式,旨在提高代码的复用性和模块化,通过将关注点分离到所谓的"切面"中。在SSH中,AOP主要由Spring框架提供支持,我们可以定义切点(Pointcut)来标识感兴趣的代码,然后...
了解了AOP的基本概念后,我们可以深入探讨如何在Spring中使用AOP,包括如何定义切面、切入点和通知,以及如何选择合适的代理方式。同时,我们还可以讨论AOP在实际项目中的应用,如事务管理、性能监控、日志记录等...
Spring AOP通过代理模式实现了这一概念,提供了声明式的方式来实现切面的织入。 在Spring中,有两种主要的配置方式:基于XML的Schema配置和基于注解的配置。这里我们关注的是基于XML Schema的配置。这种方式需要在...
在本“aop配置demo”中,我们将探讨两种主要的AOP配置方式:基于XML的配置和基于注解的配置。 首先,让我们深入了解一下基于XML的配置。在Spring的XML配置文件中,我们可以通过`<aop:config>`标签来启用AOP支持。...
**Spring框架中的AOP概念** 在面向切面编程(Aspect Oriented Programming,简称AOP)中,我们关注的是横切关注点,即那些跨越多个对象和模块,与业务逻辑交织在一起但又相对独立的代码,如日志、事务管理、性能...
**Spring AOP XML配置**是Spring框架中一种重要的面向切面编程(Aspect-Oriented Programming,简称AOP)实现方式,允许开发者定义“横切关注点”,如日志、事务管理等,这些关注点可以独立于业务代码进行,提高代码...
在深入探讨Spring AOP(Aspect Oriented Programming)的配置实例之前,我们先简要回顾一下AOP的基本概念及其在软件开发中的作用。面向切面编程是一种编程范式,它旨在通过将横切关注点(Cross-cutting Concerns)从...
**一、AOP概念解析** 1. **切面(Aspect)**:一个关注点的模块化,例如事务管理就是一个切面。在Spring AOP中,切面由`@Aspect`注解的类定义。 2. **连接点(Join Point)**:程序执行过程中的某个特定点,如方法...
首先,了解AOP的基本概念是必要的。AOP的核心是切面(Aspect),它封装了多个相关操作,形成了一个关注点。切点(Pointcut)定义了这些操作应用到何处,通知(Advice)则是实际执行的代码,例如方法调用前后的拦截...
本实例将探讨如何在Spring中使用XML配置文件和AOP标签来实现这一功能,特别是针对Spring 2.5及以上版本。 首先,我们来看XML配置文件方式。在Spring中,AOP可以通过`<aop:config>`标签来配置。下面是一个基本的AOP...
在本文中,我们将深入探讨Spring的IOC容器和AOP的核心概念,以及如何进行相关配置。 **依赖注入(IOC)** 依赖注入(Inversion of Control,简称IOC)是Spring框架的核心特性之一,它的主要目标是降低组件之间的...
1. **切面(Aspect)**:切面是AOP的核心概念,它封装了多个通知(advises),这些通知定义了特定的关注点,如方法拦截。在Spring AOP中,一个切面通常是一个带有`@Aspect`注解的类。 2. **通知(Advice)**:通知...
### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...
1. **Spring AOP基本概念** - **切面(Aspect)**:切面是关注点的模块化,如日志、事务控制等。在Spring中,切面可以是注解或XML配置的类。 - **连接点(Join Point)**:程序执行过程中的特定点,如方法调用、...