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里面存储
- spring中到底有几种依赖注入的方式
A.手动注入 1.set方法注入 2. 构造方法注入
B.自动注入 1.@Autowird注解自动注入 2. XML自动注入
- @autowird底层原理之注入点扫描
不解可以评论留言或者加微信(yswsxf1314)讨论