Spring注入aspectJ切面

1、用关键字aspect即可声明一个切面如:

         

         切面定义完毕,可以发现,pointcut被当做一个类型,指定切点还是用execution表达式;after()和returning()也被当做一个类型来声明一个通知

2、在JudgeAspect中有一个CriticismEngine类型的成员变量,为了实现对象间的松耦合,我们在aspectJ中使用Spring的依赖注入来为JudgeAspect注入CriticismEngine对象。首先将CriticismEngine声明为bean,然后再将JudgeAspect声明为bean,注意在声明JudgeAspect bean时,要用如下格式:

          

要为bean指定一个factory_method来创建Aspect的bean。因为Aspect对象不是有Spring来创建的,而是由JVM在运行时创建的,等Spring容器能创建Aspectbean的时候,Aspect对象已经被实例化了,不用再创建新对象,而Aspect类中有一个静态的Aspectof()的方法,可以返回切面的一个单例,所以我们用高factory-method来代替JudgeAspect的构造方法。

Spring注入aspectJ切面,布布扣,bubuko.com

时间: 2024-10-26 20:42:08

Spring注入aspectJ切面的相关文章

笔记12 注入AspectJ切面

虽然Spring AOP能够满足许多应用的切面需求,但是与AspectJ相比, Spring AOP 是一个功能比较弱的AOP解决方案.AspectJ提供了Spring AOP所不能支持的许多类型的切点. 但是精心设计且有意义的切面很可能依赖其他类来完成它们的工作. 如果在执行通知时,切面依赖于一个或多个类,我们可以在切面内部 实例化这些协作的对象.但更好的方式是,我们可以借助Spring的依 赖注入把bean装配进AspectJ切面中. 我们为演出创建一个新切面.具体来讲,我们以切面的方式创建

Spring 基于Aspectj切面表达式(6)

1 package com.proc; 2 3 import org.aspectj.lang.JoinPoint; 4 import org.aspectj.lang.ProceedingJoinPoint; 5 import org.aspectj.lang.annotation.After; 6 import org.aspectj.lang.annotation.AfterReturning; 7 import org.aspectj.lang.annotation.AfterThrow

AspectJ切面具体是什么时候实例化的?实在Spring Bean之前还是之后?

问题出于<Spring In Action>中4.5节 注入AspectJ切面时,看的不是太懂! 不懂得地方是:    AspectJ切面中需要注入Spring的Bean,那么AspectJ切面具体是什么时候实例化的?是在Spring Bean之前还是之后?

Spring AOP实现方式四之注入式AspectJ切面【附源码】

现在我们要讲的是第四种AOP实现之注入式AspectJ切面 通过简单的配置就可以实现AOP了. 源码结构: 1.首先我们新建一个接口,love 谈恋爱接口. package com.spring.aop; /** * 谈恋爱接口 * * @author Administrator * */ public interface Love { /* * 谈恋爱方法 */ void fallInLove(); } .csharpcode, .csharpcode pre { font-size: sma

Spring框架使用(控制反转,依赖注入,面向切面AOP)

参见:http://blog.csdn.net/fei641327936/article/details/52015121 Mybatis: 实现IOC的轻量级的一个Bean的容器 Inversion of control 控制反转:由容器控制程序之间的关系,不是程序代码操作 Depend Inject 依赖注入 Aspect oriented programming 面向切面编程 Spring能帮助我们根据配置文件创建及组装对象之间的依赖关系: Spring面向切面编程能帮助我们无耦合的实现日

关于 Spring AOP (AspectJ) 你该知晓的一切

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54629058 出自[zejian的博客] 关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 本篇是年后第一篇博文,由于博主用了不少时间在构思这篇博文,加上最近比较忙,所以这篇文件写得比较久,也分了不同的时间段在写,已尽最大能力去连贯博文中的内容

使用Spring进行面向切面编程(AOP)

转载于http://www.blogjava.net/supercrsky/articles/174368.html 文章太长,写的很好,没看完,转过来慢慢理解,品味 简介 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足. 除了类(classes)以外,AOP提供了 切面.切面对关注点进行模块化,例如横切多个类型和对象的事务管理. (这些关注点术语通常称作 横切(crosscutting) 关注点.) Spring的一个关键的组件就是 AOP

(转)Spring使用AspectJ进行AOP的开发:注解方式

http://blog.csdn.net/yerenyuan_pku/article/details/69790950 Spring使用AspectJ进行AOP的开发:注解方式 之前我已讲过Spring使用AspectJ通过配置文件的方式来进行AOP的开发,现在就来讲怎样使用注解方式进行AOP的开发. 创建一个Web项目, 引入相关的jar包.所要导入的jar包如下:  引入Spring的配置文件.主要引入AOP的约束: <?xml version="1.0" encoding=

【Spring系列】Spring AOP面向切面编程

前言 接上一篇文章,在上午中使用了切面做防重复控制,本文着重介绍切面AOP. 在开发中,有一些功能行为是通用的,比如.日志管理.安全和事务,它们有一个共同点就是分布于应用中的多处,这种功能被称为横切关注点(cross-cutting concerns). DI(依赖注入)有助于应用对象之间的解耦,而AOP可以实现横切关注点与他们所影响的对象之间的解耦. 面向切面编程在Spring AOP中有4种类型的调用,方法调用的之前.后.异常增加其他方法,方法调用的前和后调用其他方法,将方法中的参数传递给其