开发过程中很多时候会用到日志、事务等操作,这些操作如果要写在业务代码中会相当麻烦,这时就会用到面向切面编程(AOP),AOP作为一种编程思想,和OOP有着不同的侧重点,面向对象侧重于万事万物皆对象,而面向切面编程则侧重于事务的一个方面。在面向切面编程过程中有几个比较重要的概念:切 ...
开发过程中很多时候会用到日志、事务等操作,这些操作如果要写在业务代码中会相当麻烦,这时就会用到面向切面编程(AOP),AOP作为一种编程思想,和OOP有着不同的侧重点,面向对象侧重于万事万物皆对象,而面向切面编程则侧重于事务的一个方面。在面向切面编程过程中有几个比较重要的概念:切面、切点、连接点、通知,
通知:描述了切面要完成的工作,例如,要向某个方法注入日志功能,这里的日志功能就是通知;通知分为5种:Before、After、After-returning、After-throwing、Around
切点:定义了通知被应用的地方,如,某个类上的某个方法;例如,在test类的print方法;
切面:横切关注点被模块化的类,由通知和切点组成,换句话来说切面定义了要向目标程序注入的全部内容;规定了在目标方法上执行什么样的动作;
连接点:程序执行过程中切面可以**入的一个点,如方法调用、成员变量初始化,在spring中只支持方法调用;
面向切面编程有两种实现方式,一种是预编译,另一种是动态代理,AspectJ属于预编译,springAOP属于运行期动态代理方式。spring实现了对AspectJ的支持。下面看springAOP和AspectJ的使用方式,
springAOP
这里使用配置文件的方式,实现springAOP,看配置文件,
<aop:config> <!--声明一个切面类 可以有多个--> <aop:aspect id="myAspect" ref="aspect"> <!--声明一个切点--> <aop:pointcut id="point1" expression="execution(* com.cn.study.day6.Test.*(..))"/> <!--通知--> <aop:before method="before" pointcut-ref="point1" /> <aop:around method="around" pointcut-ref="point1"/> </aop:aspect> </aop:config> <!--配置切面类--> <bean id="aspect" class="com.cn.study.day6.Aspect"></bean>
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:spring入门(四)【面向切面编程】
关键词:Spring
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。