spring的核心有俩点:
1、ioc 控制反转:指创建对象的权利有ioc容器来创建
DI 依赖注入 动态的向某个对象提供它所需要的其他对象。 di的底层实现是反射
spring 的注入方式支持:构造方法注入 属性注入
2、aop 面向切面编程
aop的实现原理是动态代理:
1、jdk动态代理:JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。
2、CGLIB动态代理:是一个代码生成的类库,可以在运行时动态的生成某个类的子类。
CGLIB是通过继承的方式做的动态代理,因此如果某个类被标记为final
,那么它是无法使用CGLIB做动态代理的。