一、Spring Freamework 有哪些不同的功能?
- 轻量级:Spring 在代码量和透明度方面都很轻便。
- IOC: 控制反转
- AOP: 面向切面可以将应用业务逻辑和系统服务分离,以实现高内聚。
- 容器:Spring 负责创建和管理对象的声明周期和配置。
- MVC: 对 web 应用提供了高度可配置性,其他框架集成也十分方便。
- 事务管理:提供了用于事务管理的通用抽象层。Spring 的事务支持也可用于容器较少的环境。
- JDBC异常:Spring 的 JDBC 抽象层提供了一个异常层次结构,简化了错误处理策略。
二、什么是 Spring Ioc 容器?
Spring 框架的核心是 Sping 容器。容器创建对象,将它们装配在一起,配置它们并管理它们的完整生命周期。Spring 容器使用依赖注入来管理组成应用程序的组件。容器通过读取提供的配置元数据来接收对象实例化,配置和组装的指令。
三、依赖注入的方式有哪几种?
- 构造函数注入
- setter 注入
- 接口注入
四、IOC 的好处和实现机制
它将最小化应用程序中的代码量;它以最小的影响和最少的侵入机制促进松耦合;它支持即时实例化和延迟加载服务。
Spring 中 IOC 的实现原理就是工程模式加反射机制。
五、@Compoent、@Controller、@Repository、@Service 有何区别?
-
@Compoent:这个注解是将类标记为 bean。它是任何 Spring 管理组件的通用构造型。Spring 的组件扫描机制现在可以将其拾取并将拉入应用程序环境中。
-
@Controller:这将一个类标记为 Spring Web MVC 控制器。标有它的 Bean 会自动导入到 IOC 容器中。
-
@Service:此注解是组件注解的特化。它不会对
@Compoent
注解提供任何其他行为。你可以在服务层类中使用它,而不是@Compoent
,因为它以更好的方式指名了意图。 -
@Repository:这个注解是具有类似用途何和功能的
@Compoent
注解的特化。它为 DAO 提供了额外的好处。它即将 DAO 导入 IOC 容器,并使未检查的异常有资格转换为 Spring DataAccessException。
六、@Autowired 注解有什么用?
它可以准确的控制应该在何处以及如何进行自动装配。此注解用于在 setter 方法,构造函数,具有任意名称或多个参数的属性或者方法上自动装配 bean。默认情况下,它是类型驱动的注入。
七、spring 支持的事务管理类型
-
程序化事务管理:在此过程中,在变成的帮助下管理事务,它为程序员提供了极大的灵活性。但是维护起来非常困难。
-
声明式事务管理:在此,事务管理和业务代码分离。仅使用注解或基于 XML 的配置来管理事务。