因为之前看过Spring的中文文档,所以这本书看快了点,一些细节和代码就不手动敲了,仅记录下重要的点。
第一章
主要是简介。
简化Java开发
Spring使用如下四种关键策略简化Java开发:
- 基于POJO的轻量级和最小侵入性编程
- 通过依赖注入和面向接口编程实现松耦合
- 基于切面和惯例进行声明式编程
- 通过切面和模板减少样板式代码
依赖注入
DI就是,我们仅编写POJO类以及它所需要负责的功能,将它里面依赖的其他对象的管理交给中间人(Spring)负责。我们按照一定的语法编写POJO,容器读懂后,自动创建依赖关系。
这种行为也叫做装配。
应用切面
诸如日志、事物管理和安全这样的系统服务经常融入到核心业务,这些服务被叫做关注点,因为他们跨越了系统的多个组件。
如果将这些关注点分散到各个组件,那么代码就会增加复杂性:
- 代码重复性,使得修改关注点功能时,需要修改分散在各个组件中的实现,即使使用了抽象,也需要修改方法的调用。
- 核心功能组件自身也会因为这些关注点的侵入而变得复杂化。
模板
JdbcTemplate
,基于JDBC的简单封装模板。
Spring容器
主要有两种
- Bean工厂
- 应用上下文(更受欢迎)
应用上下文
比较常用的应用上下文:
AnnotationConfigApplicationContext
从一个或多个基于Java配置类中加载Spring应用上下文AnnotationConfigWebApplicationContext
从一个或多个基于Java配置类中加载Spring Web用上下文ClassPathXmlApplicationContext
类路径下的一个或多个XML配置文件中加载上下文定义FileSystemXmlApplicationContext
文件系统下的 一个或多个 XML配置文件中加载应用上下文XmlWebApplicationContext
从Web引用下的一个或多个XML配置文件中加载上下文定义
Spring 模块
- Spring核心容器
管理Bean的创建、配置、管理。该模块中包含Bean工厂,提供DI,还有应用上下文。 - AOP模块
- 数据集成和访问
Spring的JDBC和DAO模板抽象了传统的JDBC访问,同时支持语义丰富的异常。同时Spring中对流行的ORM框架进行了集成。 - Web与远程调用
Spring Mvc - 测试
- Instrumentation
提供代理功能,能够为Tomcat传递类文件