Spring_AOP学习笔记
2017-12-07 15:25
429 查看
概念:AOP(Aspect Oriented Programming)是一种面向切面的编程。比如当我们需要在一个已有的系统中添加日志,就需要到各个模块的控制层或是实现层添加代码,这样开发效率极低,并且代码冗余。如果利用AOP,就相当于,在所有的控制层上,划分出一个切面,这个切面定义了日志记录,所有经过控制层的代码,都会通过切面进行日志保存。
实例:
一 在配置文件中配置AOP
<!-- 开启aop -->
<aop:aspectj-autoproxy expose-proxy="true"></aop:aspectj-autoproxy>
<!-- 测试aop -->
<bean id="transactionDemo" class="com.yy.student.test.TransactionDemo"></bean>
<aop:con
4000
fig>
<aop:pointcut expression="execution(* com.yy.student.service.*.*(..))" id="p1" /> //execution定义了切面拦截的地方,特别注意*号后面有一个空格
<aop:aspect ref = "transactionDemo">
<aop:before method="startTransaction" pointcut-ref="p1" /> //前置方法
<aop:after-returning method="commitTransaction" pointcut-ref="p1"/> //后置方法
</aop:aspect>
</aop:config>
二 添加切面代码
public class TransactionDemo {
//前置
public void startTransaction(){
System.out.println("=======前置代码========");
}
//后置
public void commitTransaction(){
System.out.println("=======后置代码========");
}
}
三 xml文件加入aop
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
配置结束就可以测试啦,如果测试不成功,可以参考下面的方法:
Spring启动时会先加载Spring-mvc的配置文件,再加载Spring的配置文件,如果你的AOP配置拦截service层,那么如果写到Speing-mvc的配置文件中,是不起作用的。Spring-mvc配置文件只扫描控制层,而service层没有被注册,所以此时配置的AOP是无效的。
如果这样也没有解决,那么百度吧
实例:
一 在配置文件中配置AOP
<!-- 开启aop -->
<aop:aspectj-autoproxy expose-proxy="true"></aop:aspectj-autoproxy>
<!-- 测试aop -->
<bean id="transactionDemo" class="com.yy.student.test.TransactionDemo"></bean>
<aop:con
4000
fig>
<aop:pointcut expression="execution(* com.yy.student.service.*.*(..))" id="p1" /> //execution定义了切面拦截的地方,特别注意*号后面有一个空格
<aop:aspect ref = "transactionDemo">
<aop:before method="startTransaction" pointcut-ref="p1" /> //前置方法
<aop:after-returning method="commitTransaction" pointcut-ref="p1"/> //后置方法
</aop:aspect>
</aop:config>
二 添加切面代码
public class TransactionDemo {
//前置
public void startTransaction(){
System.out.println("=======前置代码========");
}
//后置
public void commitTransaction(){
System.out.println("=======后置代码========");
}
}
三 xml文件加入aop
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
配置结束就可以测试啦,如果测试不成功,可以参考下面的方法:
Spring启动时会先加载Spring-mvc的配置文件,再加载Spring的配置文件,如果你的AOP配置拦截service层,那么如果写到Speing-mvc的配置文件中,是不起作用的。Spring-mvc配置文件只扫描控制层,而service层没有被注册,所以此时配置的AOP是无效的。
如果这样也没有解决,那么百度吧
相关文章推荐
- Spring之AOP(学习笔记)
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
- 【Spring-AOP-学习笔记-3】@Before前向增强处理简单示例
- Spring学习笔记3-AOP
- 20.Spring学习笔记_基于配置文件的方式来配置 AOP(by尚硅谷_佟刚)
- Spring Aop Step-By-Step 学习笔记(下)
- Spring AOP 学习笔记 【Spring in action】
- Spring in Action 学习笔记三-AOP
- Spring4第四讲学习笔记,AOP面向切面编程
- [原创]java WEB学习笔记106:Spring学习---AOP的通知 :前置通知,后置通知,返回通知,异常通知,环绕通知
- 【Spring-AOP-学习笔记-5】@AfterReturning增强处理简单示例
- Spring学习笔记 —— AOP(面向切面编程) 之使用ProxyFactoryBean实现AOP
- Spring学习笔记之Aop
- JavaWeb学习笔记-spring-09-AOP-创建增强类(前置增强)
- Spring学习笔记——AOP
- Spring学习笔记002 - AOP
- Spring中AOP原理,源码学习笔记
- Spring源码学习笔记(四)-Aop获取增强、切点
- spring学习笔记-- aop及ioc的理解
- [原创]java WEB学习笔记108:Spring学习---基于配置文件的形式实现AOP