具体的总结在下面的地址已经很清楚了
http://jamesby.iteye.com/blog/39899
感觉记清楚创建spring aop的流程比较重要 :
1.创建切面。
切面=通知+切点
2.切面在spring中是以代理方式实现的,所以还需要代理。
最原始的是proxyFactoryBean
一般都是用自动代理,而自动代理又有三种
第一种:基于spring上下文的(xml文件),DefaultAdvisorAutoProxyCreator。只要在xml中申明此bean,但无beanid。这样就可以直接使用切面了。例如:
首先声明一个切面:
<bean id="audienceAdvisor"..><property name="advice">.<property name="expression">.</bean>
然后申明一个代理:
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
使用目标bean:
<bean id="表演家1" class=".." autowire="constructor"><constructor-arg ref=""></bean>
第二种:基于@AspectJ注解驱动切面的自动代理,直接在通知中注解切面
操作如下:
1.声明注解后的切面a1为一个bean
<bean id="a1" class...>
2.声明一个自动代理bean,将注解的bean转换为代理通知。spring提供了一个名为AnnotationAwareAspectJAutoProxyCreator自动代理器,可以使用声明bean的形式,也可以用配置元素
<aop:aspectj-autoproxy/>
第三种:纯粹的pojo切面,在xml中定义切面。这个比较简单就不说了
3.AspectJ aop解决方案
1.实现多类型切点.spring aop中能是方法切点。
2.aspectj可以将某个bean注入到aspectj切面中,从而可以实现更复杂的切 面。
疑点1:spring aop不知道可不可以将bean注入到切面中?测试了下貌似不行。
疑点2:按照http://lighter.iteye.com/blog/42673作者的例子,发现使用ProxyFactoryBean代理时,其中属性interceptorName可以是切面也可以是通知?
疑点3:使用纯粹的pojo切面时,如果我在 <aop:before..>执行函数体时需要判断其返回值怎么办?比如当执行函数返回true时程序继续运行,返回false时中断。就像是在发贴之前先判断是否登录一样,登录则继续运行,否则跳转到登录页或给出提示。。
分享到:
相关推荐
NULL 博文链接:https://microjava.iteye.com/blog/525796
Spring Aop 学习笔记
NULL 博文链接:https://linres.iteye.com/blog/281221
SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo
,文章属于基础级文章,适合入门级的小伙伴,它的概念,应用场景,实现原理及Spring的AOP的开发。全称:面向切面编程(AspectOrientedProgramming),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。...
自己学习spring课程的笔记。笔记都是根据尚硅谷的课程(spring ioc,spring aop,spring mvc,spring boot等)写的。 主要内容:spring ioc,spring aop,spring mvc,spring boot
Spring入门学习笔记,内容包括Spring介绍,Spring配置文件,Spring配置数据源,Spring的注解开发,Spring集成Junit,Spring的AOP,jdbcTemplate介绍,Spring控制事务流程,Spring集成web。
第八课:Spring AOP配置选项 21 一、 AOP配置annotation方式 21 (一) 搭建annotation开发环境 21 (二) aspectJ类库 22 (三) AOP的annotation实例 22 (四) AspectJ的专业术语 23 (五) 织入点语法 23 (六) Advice 24 ...
Spring框架的学习笔记,包括了springIOC,spirng注入,springAoP,SpringJdbc模板的使用,Spring声明式事务。
spring很好的学习笔记,我想对于想学好或者面试好ioc和aop的同学有帮助的
《Spring技术内幕》学习笔记1——IoC容器体系结构 《Spring技术内幕》学习笔记2——IoC定位Bean定义资源 《Spring技术内幕》学习笔记3——IoC容器载入Bean定义资源文件 ...《Spring技术内幕》学习笔记7——AOP基础
在“Java Spring学习笔记”中,你将找到对Spring框架的全面介绍,包括IoC(控制反转)和DI(依赖注入)原理、AOP(面向切面编程)、Spring MVC、Spring Boot等核心内容。每个主题都结合了理论知识和实际示例,帮助你...
第八课:Spring AOP配置选项 21 一、 AOP配置annotation方式 21 (一) 搭建annotation开发环境 21 (二) aspectJ类库 22 (三) AOP的annotation实例 22 (四) AspectJ的专业术语 23 (五) 织入点语法 23 (六) Advice 24 ...
spring框架整体知识点整理,代码样例
内容概要:学习Spring的一些学习笔记,主要学习Spring 框架两大核心机制(IoC、AOP) 笔记大纲:阅读笔记可以学习了解一下内容 如何使用 IoC ;配置文件;IoC 底层原理;通过运行时类获取 bean;通过有参构造创建 ...
Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对...
基于 Spring2.5.6 包含Spring2.5中的信赖注入、AOP、事务管理等较全面的内部。
Spring学习笔记Spring spring的配置 IOC 依赖注入 基于Xml的注入 基于注释的注入 Spring的自动注入和属性自动注入 AOP 静态代理 动态代理 使用spring实现AOP 基于Annotation实现AOP 基于XML实现AOP ...
1、ICO环境的搭建 2、属性注入 3、自定义属性编辑器 4、AOP实现 5、事务处理 6、Spring事务配置的五种方式 详解 7、Struts与Spring集成方案