Spring AOP的基本原理及面向切面编程的实现

先引入动态代理,


作用:可以在现有方法之上添加代码,增加现有程序的功能。


讲好处!


1.将与业务无关的通用功能抽取出来,单独编写,
开发人员可以专注于业务逻辑的编写。
这些通用功能包括日志,权限管理,事务处理,异常处理等。


2.通用功能的增加与删除,可以通过配置文件进行配置。


3.是一种编程方式的革命!


AOP 基本原理(动态代理:具体什么是动态代理模式可以网上自己查查)



引入AOP:面向切面的编程


AOP=面向切面编程=Aspect Oriented Programming:


技术原理:动态代理


之前讲过的OOP
OOP=面向对象编程=Object Oriented Programming,这个OOP不适合为分散的对象引入公共行为,这时候就需要AOP了




AOP 类似jsp中的filter(过滤器),struts2中的interceptor(拦截器)


两种配置方式:注解配置,XML配置




我们学习在注解方式使用aop


面向切面编程的实现


这个功能应该加在哪个类的哪个方法上??是加在方法执行之前,还是之后??
1.如:(对于想加在那个类的那个方法上,看自己引入的类和方法了)
@Before("execution(public void net.xinqushi.service.impl.save(net.xinqushi.model.User))")
        ///意思就是在这个add()的方法执行之之前调用这个方法(扩展了这个程序的功能)  
@AfterReturning("execution(public void net.xinqushi.service.Impl.UserServiceImpl.add(net.xinqushi.model.User))")
///意思就是在这个add()的方法执行之后调用这个方法(扩展了这个程序的功能)


2.spring中使用了一套面向aop编程的框架,叫做aspectj。


(1)修改spring配置文件




xmlns:aop="http://www.springframework.org/schema/aop"


http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd


(2)支持注解


<aop:aspectj-autoproxy/>
注意:在aop的这个类中 需要引入@Aspect ///说明此类是面向切面编程类


完成上述两个步骤即可就完成了注解方式使用AOP
  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗兰随风小欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值