- 浏览: 578045 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- webservice (3)
- oracle (37)
- sqlserver (8)
- j2ee (56)
- linux (7)
- javaweb (47)
- office (1)
- struts (23)
- hibernate (11)
- spring (29)
- 网络 (2)
- tomcat (13)
- tongweb (0)
- weblogic (0)
- powerdesiginer (3)
- svn (3)
- js (20)
- ie (2)
- 编译 (3)
- css (2)
- 操作系统 (5)
- Android (41)
- jbpm4.3 (1)
- fckeditor (3)
- 操作excel (2)
- db2常用命令 (1)
- ibatis (5)
- mysql (16)
- 表达式语言 (1)
- java方式调用存储过程 (1)
- ca (1)
- linux客户端 (1)
- 电子数码 (1)
- 行业应用 (12)
- 开发工具 (4)
- 面试 (1)
- 计算机原理 (1)
- NOSQL (5)
- 虚拟机 (1)
- nginx (0)
- velocity (2)
- jndi (1)
- spring mvc (39)
- springmvc (32)
- 安全 (5)
- htmleditor (6)
- iphone4 (1)
- html (4)
- jstl (2)
- ckeditor (5)
- 连接池 (1)
- jquery (6)
- 分页 (1)
- 技术研发规则 (1)
- javamail (1)
- maven (2)
- upload (1)
- log (1)
- 测试 (10)
- spring roo (1)
- 版本控制 (2)
- find bugs (0)
- jsf (0)
- springroo (0)
- 小道理 (1)
- 小道理,技术标准 (1)
- jsf (0)
- bitbao (2)
- redmine (3)
- 团队意识 (1)
- mybatis (2)
- jquery mobile (1)
- flexpaper (0)
- json (4)
- URLRewriteFilte (1)
- html5 (1)
- 都乐保活动 (0)
- openfire (0)
- TreeMap (1)
- build (0)
- javaweb,tag (0)
- algorithm (1)
- tag (2)
- 扯淡 (0)
- mac (2)
- 叶一火(老一) (1)
- 游玩 (1)
- 编码 (1)
- 上线部署 (0)
- 研发管理 (0)
- thumbnailator (2)
- 旅游 (0)
- bingweibo (1)
- 杂谈 (4)
- ktv (1)
- weibo (1)
- 爱情 (2)
- 饮食 (1)
- MediaWiki (1)
- git (1)
- 版本库 (1)
- servlet (1)
- 感悟 (1)
- 人生 (1)
- highcharts (1)
- poi (0)
- websphere (0)
- php (1)
最新评论
-
woshixushigang:
good
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
nathanleewei:
org.springframework.jdbc.core.B ...
org.springframework.beans.TypeMismatchException: Failed to convert property valu -
浪禾木:
请问是ckeditor\contents.css吗?改过以后 ...
ckeditor自动换行问题 -
simusuishi:
刚哥威武!
ckeditor取值赋值问题 -
a455642158:
收割完毕……
Android开源项目源码下载(不断更新中)
AOP(Aspect-Oriented Programming,面向方面编程):解决非业务逻辑功能的实现。
AOP是OOP的延续,利用AOP可以对将日志记录,性能统计,安全控制,事务处理,异常处理,跟踪,性能的优化,和监
控,持久化,资源池,如数据库连接池的管理系统统一的认证、权限管理等应用系统的异常捕捉及处理,针对具体行业应用
的横切行为,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。通
过这种机制可以将业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时
提高了开发的效率。
1、关注点
1)核心关注点(OOP):关注系统的业务逻辑
2)横切关注点(AOP):关注系统级服务,比如事务、安全、日志
2、方面(Aspect):将散落在各处的代码规整到一处形成一个模块,这个模块称为方面。
3、连接点(Joinpoint):程序执行过程中的某一点,比如方法的调用、异常的抛出。
4、增强(Advice):为某个目标对象增加额外的功能,在spring中增强是通过拦截器实现的。
1)前增强拦截器:在目标对象方法执行之前执行的拦截器。
实现的接口:MethodBeforeAdvice
<!-- 目标对象 -->
<bean name="target" class="com.briup.aop.OrderServiceImpl"></bean>
<!-- 拦截器对象 -->
<bean name="advice" class="com.briup.aop.before.LoggerBeforeAdvice"></bean>
<!-- 创建目标对象的代理对象,注意在调用时调用的是代理对象,而不是目标对象 --
>
<bean name="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<!-- 注入目标对象 -->
<property name="target">
<ref bean="target"/>
</property>
<!-- 注入拦截器的名字,而不是拦截器对象 -->
<property name="interceptorNames">
<list>
<value>advice</value>
</list>
</property>
<!-- 注入代理对象需要实现的接口名称 -->
<property name="proxyInterfaces">
<list>
<value>com.briup.aop.IOrderService</value>
</list>
</property>
</bean>
2)后增强拦截器:在目标对象方法执行之后执行的拦截器。
实 抪_______现的接口:AfterReturningAdvice
3)环绕增强拦截器:在目标对象方法执行之前和之后都执行的拦截器。
实现的接口:MethodInterceptor
4)抛出增强拦截器:在目标对象方法执行时抛出异常才执行的拦截器。
实现的接口:ThrowsAdvice
5、切入点(Pointcut):一组连接点,如果有选择性的拦截目标对象中的方法的话需要定义切
入点。
为拦截器(advice)定义切入点从而产生增强器(advidor):
org.springframework.aop.support.RegexpMethodPointcutAdvisor
<!-- 拦截器:拦截目标对象的所有方法 -->
<bean name="advice" class="com.briup.aop.before.LoggerBeforeAdvice"></bean>
<!-- 增强器:拦截目标对象的部分方法 -->
<bean name="advisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref bean="advice"/>
</property>
<property name="patterns">
<list>
<!-- .:通配一个字符(任意字符);*:通配前一个字符若干次 -->
<value>.*save</value>
<value>.*find</value>
</list>
</property>
</bean>
6、目标对象(Target Object):需要被增强功能的对象称之为目标对象,也被称为被增强或被
代理对象。
7、代理对象(Proxy Object):为目标对象增加额外功能之后产成的新的对象,主要负责调用
拦截器和目标对象。
1)产生代理对象的两种机制:
1.java中的动态代理:产生代理对象需要和目标对象实现共同接口;
2.第三方的cglib库:产生的代理对象是目标对象的子类对象。
2)Spring提供的专门用来产生代理对象的类:
org.springframework.aop.framework.ProxyFactoryBean
3)自动代理:不需要写配置信息就能产生代理对象
1. org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator
特点: a. 只能注入增强器,对拦截器不起作用
b. 不灵活:代理配置文件中所有的目标对象
2. org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator
特点: a. 对拦截器、增强器都起作用
b. 灵活:可选择性的代理配置文件中的目标对象
8、织入(Weaving):为目标对象增加额外功能从而产生代理对象的过程。
发表评论
-
Mybatis Generator自动生成Mybatis的相关代码
2012-02-27 16:41 1775本文将简要介绍怎样利用Mybatis Generator自动生 ... -
System.getProperty(key)
2012-02-15 15:08 1020public static void main(String ... -
开发过程中的注意事项
2012-02-14 13:22 8081、测试用例必须看。 2、解决不了的问题,请教。 3、自定 ... -
MySQL日期时间函数大全
2012-02-07 11:46 913DAYOFWEEK(date) 返回日 ... -
拒绝平庸——浅谈Web登录页面设计
2012-01-29 10:43 1130用户活跃度是检验产品 ... -
自己手动打jar
2012-01-10 16:49 898用最笨的方式打个可运行的jar包: 1、用eclipse e ... -
eclipse codestyle和formate
2011-12-26 11:20 1060北京都乐宝软件信息技术公司的代码风格 -
Common-logging 与 Log4j的结合使用
2011-12-25 15:58 1207转自:http://hi.baidu.com/suofang/ ... -
org.springframework.beans.TypeMismatchException: Failed to convert property valu
2011-12-20 20:05 3730org.springframework.beans.TypeM ... -
spring mail
2011-11-25 17:12 922最近项目中要用到邮件服务,主体框架采用了spring mvc, ... -
投票系统
2011-08-13 23:10 1089公司需要做一个网上投票系统,需求及分析如下: 一个Ip ...
相关推荐
spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在减少代码的重复性和增强可维护性,特别是在处理系统中的横切关注点时。这些关注点,如日志、事务管理、安全检查等,往往分散在系统的各个部分...
**AOP Alliance简介** AOP Alliance是一个开源项目,它的全称是Aspect Oriented Programming(面向切面编程)Alliance,是Java平台上的一个接口集合,为面向切面编程的实现提供了一个统一的API。这个库的主要目的是...
面向切面编程(AOP)是一种编程范式,旨在将横切关注点(如日志、安全等)与业务逻辑分离,从而提高模块化。AOP通过预定义的“切面”对横切关注点进行模块化,从而可以在不修改业务逻辑代码的情况下增加新功能。动态...
在Java应用中,aopalliance.jar包扮演着至关重要的角色,它包含了一些核心接口,如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.aop.Advice`,这些接口定义了拦截器和通知的概念,它们是AOP的...
Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。这个"spring aop jar 包"包含了实现这一功能所需的类和接口,...
Spring Boot AOP(面向切面编程)是一种强大的设计模式,它允许我们在不修改现有代码的情况下,插入额外的功能或监控代码。在Spring框架中,AOP主要用于日志记录、事务管理、性能统计等场景。本示例是关于如何在...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许程序员定义“切面”,这些切面可以封装跨越多个对象的行为或责任。在Java应用中实现AOP通常需要依赖于一些外部库,这些库在你提供的标题和描述中有所...
在IT行业中,AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它旨在提高软件的模块化程度,将关注点分离。在Java世界里,AOP常用于处理日志、事务管理、权限检查等横切关注点。当我们谈到“AOP...
在IT领域,Spring框架是一个广泛使用的Java应用框架,它提供了许多功能,包括依赖注入、面向切面编程(AOP)等。"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨...
开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE...
在给出的XML配置中,`<aop:config>`元素开启AOP支持,而`<aop:aspect>`元素用于定义切面,其内部通过`<aop:pointcut>`定义切点,并通过`<aop:before>`和`<aop:after>`指定通知。 为了使用这些配置,我们需要在代码...
在IT行业中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种设计模式,它旨在提高软件的模块化程度,将关注点分离,使业务逻辑与系统服务(如日志、事务管理、安全控制等)解耦。C#作为.NET框架的主要...
面向切面编程(AOP,Aspect Oriented Programming)是一种编程范式,旨在通过将关注点分离,使得系统设计更加模块化。AOP的核心思想是将应用程序的横切关注点(如日志、事务管理、安全检查等)从核心业务逻辑中解耦...
Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许我们在不修改源代码的情况下,通过在程序运行时动态地将代码插入到方法调用中,来实现跨切面的关注点,如日志记录、性能监控、事务管理等。...
在.NET开发环境中,C#语言提供了丰富的特性(Attributes)、依赖注入(DI)和面向切面编程(AOP)等机制,使得我们可以构建更加灵活、可维护的代码。本主题将深入探讨如何使用C#和AOP来动态截获异常,以实现更高级别...
最后,`aopalliance-1.0.0.jar`是AOP联盟提供的一个接口库,它定义了一些通用的AOP接口,比如`org.aopalliance.intercept.MethodInterceptor`和`org.aopalliance.intercept.MethodInvocation`,使得不同的AOP框架...
《面向切面编程(AOP)的工作原理与实践》 面向切面编程(Aspect-Oriented Programming,简称AOP)是软件开发中的一个重要概念,它旨在解决程序中的横切关注点,即那些跨越多个模块、类或方法的共同功能,如日志、...
《aopalliance-1.0.jar:AOP联盟的核心库解析》 在Java开发领域,面向切面编程(Aspect-Oriented Programming, AOP)是一种重要的编程范式,它旨在将关注点分离,使系统设计更为模块化,降低耦合度。而aopalliance-...
### Spring中的AOP不生效的原因及解决方法 在Java开发中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种重要的编程思想和技术手段,主要用于处理横切关注点问题,如日志记录、性能统计、安全控制、...