aop思想介绍

咱们看一下Spring的AOP,Spring提供了对AOP,回顾之前接触过的AOP,Spring到底提供了什么样的支持,

能够帮助我们进行AOP的开发,第一个说一下AOP的思想,AOP思想前端时间已经说过了,用最简单的话来说,横向

重复,纵向抽取,就是这八个字,画AOP图的话,因为AOP是思想,解决参数乱码,request.setCharacterEncoding,

那代码天天在Service里面写,写一份写一份,直到有一天,filter出现了,咱们说filter是在请求到达servlet之前,

先会经过什么呢,filter,这样的话就意味着我们把解决乱码这个事,放到filter当中来的话,那servlet种解决乱码

的代码干掉了,是不是这个意思,这样的话从系统架构图来说,filter解决乱码这个事,是不是等于,加入到所有servlet

这个类上了,这样的话抽取到filter上,相当于给所有类都加了,这样切面于是就形成了,你看这个filter是不是就像

刀一样,这是不是就是面向切面编程,理解切面编程的概念吧

所以那把刀,他还切过谁,还切过啥呢,就是你们在学动态代理的时候,谁能给我举个例子,

比如系统里面有XxxService,动态代理当中,在Service当中,管理事务,包括现在好像也是这么做的,

你别管写增删改查啥方法,是不是要开启事务,写业务逻辑,然后提交事务,那这样的话,咱们使用动态代理记录,

能够解决什么问题呢,咱们是不是要搞一个代理类,实现的话是不是有一个Invocation Handler,在Invocation

Handler里面,把事务管理的代码提取进来,然后使用动态代理技术,把Handler动态加到所有的Service,形成代理

对象,动态代理是这么写的吧,当时举个例子,当时可能不是事务管理代码,Proxy.newProxyInstance,第一个参数

ClassLoader,第二个参数是传一个Interface,是不是数组,第三个是传InvocationHandler,是写的这玩意吧,哪怕

你写出来不知道咋用,你先写出来,那InvocationHandler要写的东西就是咱们加在被代码对象中的代码,这点应该还记得

吧,咱们希望加到被代理对象中的代码,就写到Handler里面,是不是理解成把,如果是对Service生成代理的话,咱们的事务

管理抽取到InvocationHandler里,这样的话,咱们通过动态代理,把事务管理加到各个Service当中,是不是不需要在Service

当中再写了

按照时间顺序,这是我们第二次接触AOP,第三次接触AOP是在什么时候,拦截器的,拦截器的Action,

然后在咱们的Action当中,拦截器那么多,随便找一个,参数赋值,参数赋值,实际上理论上来讲,参数赋值的话,

每个Action用参数赋值,那你是不是要把参数赋值的代码放到拦截器当中,但是咱们的Action好像不用这么干就可以

接收到参数,这是为啥啊,为啥,是不是咱们有一个拦截器,这个拦截器就可以赋值参数的动作,如果在拦截器中,如果

做这个事,那这样的话是不是意味着在Action中就不用再做了,包括后面写的校验是否登陆这个事,是不是这样,咱们如果

没有拦截器的话,是不是都要校验一下,还有拦截器之后,放到拦截器中来做,是不是就抽取出来了,这就是咱们的AOP思想

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值