首页 > 代码库 > Spring In Action(第三版)读书笔记

Spring In Action(第三版)读书笔记

第一章 Spring之旅

POJO: plain old java object 简单的java对象

DI:Dependency Injection 依赖注入

构造器注入:构造时作为构造器参数传入

private Quest quest;public BraveKnight(Quest quest){    this.quest = quest;}

其中 Quest是个接口,用以在于实现松耦合

测试的时候可以使用mock实现。如下:

Quest mockQuest = mock(Quest.class);BraveKnight knight = new BraveKnight(mockQuest);

装配wiring: 创建组件之间的协作行为.

XML配置装配

<bean id="quest" class="test.SlayDragonQuest"/><bean id="knight" class="test.BraveKnight">    <constructor-arg ref="quest"/></bean>

 

通过应用上下文(Application Context)装载Bean的定义

ApplicationContext context= new ClassPathXmlApplicationContext("knight.xml");Knight knight = (Knight) context.getBean("knight");

AOP: Aspect-oriented Programming 应用切面编程--分离成可重用的组件.

Spring容器:Bean factories,最简单的容器

应用上下文:基于Bean factories之上,提供面向应用的服务。

ClassPathXmlApplicationContext——类路径下的xml文件

FileSystemXmlApplicationContext——绝对路径下的xml文件

XmlWebApplicationContext——web应用下的xml文件

Spring框架(分类比较杂,常见的有如下)

1. AOP模块

2. DAO模块(data access object)

ORM: object-relational mapping 对象关系映射

把关系型数据库中的关系数据映射成为程序中的对象。

3. web模块

4. spring mvc

*************************************************************************************

第二章 装配Bean

 

构造器注入

<bean id="duke" class="test.Duke">    <constructor-arg value="15"/><!-- 注意 如果注入另一个bean,需用 ref, not value--></bean>

通过工程方法创建bean

-- 可以把没有公开构造函数的类配置为一个bean

<bean id="singleton" class="test.Singleton“ factory-method=”getInstance"/>

Bean的作用域

singleton    (默认)在每个Spring IoC容器中一个bean定义对应一个对象实例。

prototype    一个bean定义对应多个对象实例。

request     在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext 情形下有效。

session     在一个HTTP Session 中,一个bean定义对应一个实例。该作用域仅在基于web的SpringApplicationContext 情形下有效。

global-session   在一个全局的HTTP Session 中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext 情形下有效。

Spring In Action(第三版)读书笔记