由于之前学了好多知识,感觉挺乱的。趁放假,想对这些知识复习归纳下。所以就有了这些随笔啦。随笔中可能会出现错误哈,万一有人看了并且发现了留言哈。勿喷,谢谢哈~先对Spring进行简要概括,以下内容有些摘抄自《Spring实战》第四版。
Spring是一个轻量级的开源框架。它被广泛应用在Web开发中。Spring提供了两个核心特性依赖注入(dependency injection, DI)与面向切面编程(aspect-oriented programming, AOP)。其目的是简化Java开发。
为了降低Java开发的复杂性, Spring采取了以下4种关键策略:
- 基于POJO的轻量级和最小侵入性编程;
- 通过依赖注入和面向接口实现松耦合;
- 基于切面和惯例进行声明式编程;
- 通过切面和模板减少样板式代码。
使用Spring开发时,Spring竭力避免因自身的API而弄乱应用代码。,Spring不会强迫你实现Spring规范的接口或继承Spring规范的类, 相反, 在基于Spring构建的应用中, 它的类通常没有任何痕迹表明你使用了Spring。 最坏的场景是, 一个类或许会使用Spring注解, 但它依旧是POJO。Spring的非侵入编程模型意味着这个类在Spring应用和非Spring应用中都可以发挥同样的作用。
依赖注入,即控制反转(Inversion of Control, IoC)。控制反转,就是获取依赖对象的方式得到反转。这个过程交由Spring管理,而不是我们自己手动管理。通过对Spring的配置,使Spring能够管理各个对象之间的依赖关系。依赖注入降低了各个对象之间的耦合。
AOP,即面向切面编程。是对面向接口编程的拓展。在一个应用中,每个对象对应该只关注针对自己的业务领域,不应该嵌入其他与业务无关的代码,但有时,我们需要在许多对象中添加类似的与业务无关的代码,例如添加事务、日志。这些散布于应用中多处的功能被称为横切关注点。而面向切面编程就是将这些功能抽取出来,形成切面,从而达到解耦的目的。