aop,代理,依赖注入

首先本人不懂java ,有些代码是通的,比如修饰器等等。大部分都是 对这些概念的理解,只谈思想。
概念其实被抽象出来并不是好事情,因为所有的思想都是为了解决特定的问题和一些矛盾而设立的,搞清楚一些思想的产生背景,它是为了解决什么问题而创建出来的
aop(Aspect Oriented Programming):面向切面编程。

https://www.jianshu.com/p/61f9d7348218(内部动态生成Java源文件,写入本地,然后将Java文件编译成class文件,加载到内存,并实例化,删除本地源文件部分代码)
https://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html
https://www.cnblogs.com/linwenbin/p/11083463.html
https://blog.csdn.net/lsr40/article/details/88642153 (挺好)

解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。

具体思想是:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流。

AOP 在Spring框架中被作为核心组成部分之一,的确Spring将AOP发挥到很强大的功能。最常见的就是事务控制。

image

优点:

利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
主要功能
日志记录,性能统计,安全控制,事务处理,异常处理等等。
主要意图
将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

代理
分为动态代理和静态代理,具体看如下文章:

https://www.jianshu.com/p/8ccdbe00ff06

动态代理用到了反射。代理的目的是什么呢? 大概就是 字面意思,就是代理,你要去访问 某个目标对象Target的时候,按照程序的解耦思想和一些框架限制,你不要去直接访问 Target,而是用架构师已经写好的代理(他会 在切面 加上一些日志功能,访问Target权限的功能(就是过滤访问者功能)等,你只需要关注各个模块的具体的业务逻辑实现就好了)

依赖注入

https://www.zhihu.com/question/32108444

用注射器 将 当前模块需要的 依赖 注入到当前模块中 。最简单的就是工厂模式,要一个,就实例化一个对象并返回。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值