您的位置:首页 > 编程语言 > Java开发

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是无效的。

如果这样也没有解决,那么百度吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: