spring的IOC和AOP

IOC和AOP是spring的两大核心思想,是思想,不是什么方法实现啊

1、IOC:控制反转,依赖注入。

原来我们要使用某个对象是通过new出来是使用和管理,但是Spring框架给我们搞定了,被调用者,或者说所有类都通过spring去创建,由他的bean容器给去注入,管理,我们使用时候引入就可以使用。就权限被反转了,所以叫控制反转。创建bean时候也许对象有一些属性或字段,spring帮我们一起注入赋值了,就叫依赖注入。

目的:降低耦合度,使用起来更灵活

2、AOP:面向切面编程

把一些和业务无关的,但是又是必须的公共行为,抽取成一个模块,做成一个切面,在某些动作之前,之后或者环绕之类的时候就默认调用这个模块。

比如:订单是需要,然后订单有创建,修改,删除等步骤,我们需要日志专门给订单记录下来,就在新增,update订单记录之后,要更新的订单数据记录到日志,然后订单日志就可以专门做一个平台,当现网用户发现有问题找过来,你可以快速订单出问题是什么,他状态经过哪些变化,哪些数据有变化、

还有免预付交通卡的请求hw自己的支付,花瓣支付普通,大量的接口都需要调用这一块,然后为了安全,会进行签名计算,这部分如果每个接口下面都加上,冗余太多,所以我这边利用AOP的思想用了拦截器,在接口调用时候把req的签名放入到内存context中,然后再拦截器中约定key拿到签名,再放入header中,我们签名是放在header中的,在代码中不太好拿到,需要各种反射调用才可以,在拦截器中(底层实现了很多比如前置,后置,环绕等)轻易就能拿到放入header头中,花瓣平台才去验签

简单说下:加密是用对方的公钥加密,是为了信息安全,别人劫持了信息,但是没有对方的私钥,也没法知道信息内容。

而签名和验签是为了:防止信息篡改,确认身份,验签时候也不是解密,而且验证下你期望的req和验签结果req是否一个,中间是否信息被篡改过,只是得到一个true,FALSE的结论。

aop目的:减少重复代码,实现高内聚,低耦合,功能在拦截器中准确实现了,是高内聚,然后其它接口调用参数修改不响应拦截器,是低耦合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值