1.为什么要使用 Spring?
- Spring 提供 ioc 技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象,更更轻松的实现了程序解耦。
- Spring 提供了事务支持,使得事务操作变得更加方便。
- Spring 提供了面向切面编程,这样可以更方便的处理某一类问题。
- 更方便的框架集成,Spring 可以很方便的集成其他框架,比如MyBatis,Hibernate等。
2.什么是 aop?
aop 是面向切面编程,通过预编译的方式和运行期动态代理实现程序功能的统一维护的一种技术。
简单来说就是统一处理某一“切面”的问题的编程思想,比如同意处理日志,异常等。
3.什么是 ioc?
ioc:Inversionof Control(控制反转)是Spring 的核心,对于Spring 框架来说,就是由Spring 来负责控制对象的生命周期和对象间的关系。
简单来说,控制指的是当前对象对内部对象的控制权,控制反转指的是,这种控制权不由当前对象管理了,由其他(类,第三方容器)来管理。
4.Spring 有哪些主要模块?
- Spring Core:框架最基础的部分,提供ioc 和依赖注入特性。
- Spring context:构建于 Core 封装包基础之上的Context 封装包,提供了一种框架式的对象访问方法。
- Spring DAO:Data Acecess Object 提供了 JDBC 的抽象层。
- Spring ORM:ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射。
- Spring AOP :提供了面向切面的编程实现,让你可以自定义拦截器,切点等。
- Spring Web:提供了针对Web开发的集成特性,例如:文件上传利用 servlet listeners 进行 ioc 容器初始化和针对 Web 的ApplicationContext。
- Spring Web MVC:Spring 中的 MVC 封装包提供了 Web 应用的Model--View--Controller(MVC)的实现。
5.Spring 常用的注入方式有哪些?
- setter属性注入
- 构造方法注入
- 注解方式注入