aop底层分析

OOP面向对象编程

Aop面向切面编程:其实就是把一些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的  例如:用在 1.日志   2.权限   3.处理事务

Aop底层是用动态代理实现的,

动态代理分为两种:1.java动态代理(jdk){Java proxy}     2. cglib动态代理 {cglib proxy}

AOP底层是通过if else 判断是否使用jdk动态代理还是cglib动态代理

如果启动类配置了true (proxyTargetClass=true)或者是实现了interface就是jdk动态代理,否则就是走cglib动态代理

Cglib和java动态代理他们的底层实现

Java》JVM虚拟机》Byte[]  字节码(源码)》机器码

为什么java动态代理必须是接口???

动态生产得那个代理类型默认就已经继承了java自带得Proxy,而java又是单继承多实现,所以java动态代理必须是接口

顺带:对象(bean)注入是放入hashMap里面存储

 

  1. spring中到底有几种依赖注入的方式

 

   A.手动注入     1.set方法注入                 2.  构造方法注入

 

   B.自动注入     1.@Autowird注解自动注入     2.  XML自动注入

 

  1. @autowird底层原理之注入点扫描

 

 不解可以评论留言或者加微信(yswsxf1314)讨论

posted @ 2021-03-08 10:34  心愿路自平  阅读(91)  评论(0)    收藏  举报