Spring 是开源框架,为简化企业级应用开发而生。Spring 可以是使简单 JavaBean 实现以前只有 EJB 才能实现的功能。Spring是一个 IOC 和 AOP 容器框架。
Spring 容器的主要核心是:
1、控制反转(IOC),传统的java 开发模式中,当需要一个对象时,我们会自己使用new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建,直接调用spring 提供的对象就可以了,这是控制反转的思想。
2、依赖注入(DI),spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想。
3、面向切面编程(AOP),在面向对象编程(OOP) 思想中,我们将事物纵向抽成一个个的对象。而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行权限控制、事物管理,记录日志等公用操作处理流程就是面向切面编程的思想。AOP 底层是动态代理,如果是接口,采用JDK动态代理,如果是类,采用是CGLIB方式进行动态代理。