1.Spring之旅

120 阅读3分钟

本章内容:

image.png

简化Java

image.png

Spring使用Bean或JavaBean来表示应用组件。应用组件可被重用并轻松构建复杂的应用,Spring组件可以是任何形式的POJO。为简化Java开发,Spring采取了以下四种关键策略:

image.png

POJO

POJO:Plain Ordinary Java Object,简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

依赖注入(Dependency Injection)

Spring不强制要求实现接口或继承规范类,而是通过注入依赖帮助应用对象彼此间保持松散耦合。 2.依赖注入通过接口(而不是具体实现或初始化的过程)来表明依赖关系使代码简单、易理解、易测试。

书中通过挑战DamselRescuingQuest还是Quest构建勇士演示了构造器注入依赖的方法。并利用@Test和mock()方法实现测试。

image.png 创建应用组件之间协作的行为称为装配,Spring常采用XML配置来装配Bean: image.png Spring通过应用上下文(Application Context)负责对象的创建和组装,即装载Bean的定义并组装它们。如图为加载上下文并获取对象的引用: image.png

应用切面

面向切面编程(AOP):实现分离功能形成可重用组件,通常组件负责特定功能(自身核心功能)且有可被分离的横切关注点负担(如日志、事务管理和安全等)。 image.png AOP可实现横切关注点与核心业务逻辑相分离: image.png

书中声明了吟唱诗人与骑士的关系引出了切面配置,勇士不必显式调用吟唱诗人。AOP与实现声明式事务和安全有关。 image.png

模板封装

样板式代码:与核心业务无关的大量重复代码。 image.png

Spring中的Bean容器

image.png

应用上下文

应用对象生存于Spring容器中,实现创建、装配、配置、管理整个生命周期。
Spring使用依赖注入管理组件并创建组件间的关联。
Spring容器分为两类:Bean工厂(过于简单)和应用上下文。 应用上下文容器:基于BeanFactory提供面向应用的服务,如从属性文件解析文本信息、为事件监听者发布应用事件。 image.png image.png

Bean生命周期

image.png

image.png image.png image.png

Spring模块

image.png

容器

最核心的部分,可实现前两节中的相关内容,Spring所有模块都构建于核心容器之上。

AOP

着重于横向关注点

数据访问与集成

提供ORM模块(object-relational mapping)、支持DAO(Data Access Object)

Web和远程调用

MVC:分离用户界面逻辑与应用逻辑。 提供两种形式:基于Servlet框架的传统Web应用和基于Portlet的面向使用Java Portlet API

测试

Spring为JNDI、Servlet和Portlet编写了一系列模拟对象实现的单元测试,并可通过加载Spring应用上下文中的Bean集合与Spring上下文中的Bean的交互实现集成测试。