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