第一章的主要内容介绍
- Spring的bean容器
- 介绍Spring的核心模块
- 更为强大的Spring生态系统
- Spring的新功能
Tips: POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。
简化JAVA开发
Spring 目的是解决了企业级应用开发的复杂性,javabean的实现变得简单,全方面的简化java 开发的复杂性
- 基于POJO的轻量级和最小侵入性编程;
- 通过依赖注入和面向接口实现松耦合;
- 基于切面和惯例进行声明式编程;
- 通过切面和模板减少样板式代码。
激发POJO的潜能
Spring 不会强迫实现 Spring 规范的接口,并且类没有任何痕迹表明使用了Spring
eg:一个类或许有Spring 注解,但是仍然是POJO
如图,这是一个简单的JAVA类,POJO没有任何的地方看出使用了Spring
依赖注入
传统的做法是,每个对象自己负责管理与自己协作的对象的引用(依赖的对象)。 但是会导致高度耦合和难以测试。
DamselRescuingKnight在它的构造函数中自行创建了Rescue DamselQuest。这使得DamselRescuingKnight紧密地和RescueDamselQuest耦合到了一起。
并且编写测试很困难,必须保证当骑士的embarkOnQuest()方法被调用的时候,探险的embark()方法也要被调用。 (困难在于无法确保实例quest 已经被创建)
耦合具有两面性:一方面使得代码难以测试,复用,难以理解。另一方面,一定程度的耦合是必须的,不然完成不了任何功能(类之间不能交互和调用)。
通过DI 对象的依赖关系由系统中的第三方组件在创建对象的时候设定,对象无需自行的创建和管理依赖关系
如POJO 使用了Spring 注解
Spring 通过DI来进行装配