spring的核心是ioc容器和aop面向切面编程。
ioc容器就是个管理对象的容器;控制反转就是把对象的创建权交给spring的ioc容器,包含了对象的创建,使用,销毁。
ioc的底层实现:
1.先通过createBeanFactory创建出一个Bean工厂
2.开始循环创建对象,ioc容器中的Bean默认为单例,优先通过getBean和doGetBean从容器中查找,创建对象
3.再通过createBean和doCreateBean以反射的方式创建Bean,默认用的无参构造方法。
4.通过populateBean进行属性的填充
5.进行其它操作
aop是面向切面编程,是通过预编译和运行期间动态代理实现程序功能的技术。简单来说就是增强ioc对象方法的技术。aop的动态代理技术分别为:jdk基于接口的动态代理技术;cglib基于父类的动态代理技术。