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的SpringApplicationContext情形下有效。
Spring In Action(第三版)读书笔记的更多相关文章
- Linux设备驱动程序 第三版 读书笔记(一)
Linux设备驱动程序 第三版 读书笔记(一) Bob Zhang 2017.08.25 编写基本的Hello World模块 #include <linux/init.h> #inclu ...
- effective java(第三版)---读书笔记
第一章 引言 < Effective Java>这本书并不厚,而且并不适合初学者,适合有一定的工作经验的java攻城狮.这本书不是百科全书式的JAVA 手册,而是试图在讲述如何正确.高效地 ...
- javaScript高程第三版读书笔记
看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了< ...
- 《ECMAScript6标准入门》第三版--读书笔记
2015年6月,ECMAScript 6正式通过,成为国际标准.尽管在目前的工作中还没有使用ES6,但是每项新技术出来总是忍不住想尝尝鲜,想知道ES6能为前端开发带来哪些变化?对自己的工作有哪些方面可 ...
- JavaScript高级程序设计第三版-读书笔记(1-3章)
这是我第一次用markdown,也是我第一次在网上记录我自己的学习过程. 第一章 JavaScript主要由以下三个不同的部分构成 ECMAScript 提供核心语言功能 DOM 提供访问 ...
- CSS权威指南-第三版--读书笔记
第一章:CSS和文档 html是结构化语言,css是样式语言,html主要用来被强大的搜索引擎更好的索引,更好的让一个盲人通过语音浏览器来了解我们的网页,这也就是为什么说html是结构话语言,因为这是 ...
- CLR.via.C#第三版 读书笔记
第一章 CLR的执行模型 1.1将源代码编译成托管代码 决定将.NET Framework作为自己的开发平台之后,第一步是决定要生成什么类型的应用程序或组件.假定你已经完成了这些次要的细节:一切都已经 ...
- 9Andrew.S.Tanenbaum计算机网络第三版读书笔记-总体概览
- 高性能mysql第三版读书笔记3
innodb以前不支持高并发,在搞病房下就是悲剧,全部卡在mutex(缓冲池mutex)上,现在通过线程调度器控制线程怎么进入内核访问数据,参数为innodb_thread_concurrency,它 ...
- LINUX内核设计与实现第三周读书笔记
LINUX内核设计与实现第三周读书笔记 第一章 LINUX内核简介 1.1 Unix的历史 1969年的夏天,贝尔实验室的程序员们在一台PDR-7型机上实现了Unix这个全新的操作系统. 1973年, ...
随机推荐
- Velocity笔记
- profiler加入计划任务
创建profiler的存储过程: USE [xxxDB] GO /****** Object: StoredProcedure [dbo].[CreateProfile] Script Date: 2 ...
- Java -- String、StringBuffer、StringBuilder
原文:http://blog.csdn.net/kingzone_2008/article/details/9220691 String:不可变. StringBuffer(JDK1.0):可变,线程 ...
- Android -- View setScale, setTranslation 对View矩阵的处理
参考: 1.Android Matrix理论与应用详解 2.2D平面中关于矩阵(Matrix)跟图形变换的讲解 3.Android中关于矩阵(Matrix)前乘后乘的一些认识 4.Android Ma ...
- Clr Via C#读书笔记---垃圾回收机制
#1 垃圾回收平台的基本工作原理: 访问一个资源所需的具体步骤: 1)调用IL指令newobj,为代表资源的类型分配内存.在C#中使用new操作符,编译器就会自动生成该指令.2)初始化内存,设置资源的 ...
- MySQL zabbix
http://liqingbiao.blog.51cto.com/3044896/1712080
- Fallout4 Creation Kit
按住SHIFT是旋转视角,按住鼠标中键 E是移动物品 双击W是旋转物品 数字键2 是调整物品大小
- ShooterGame 学习笔记1 PlayerPawn的两个Mesh的可见性
GameMode Override 为 ShooterGame_TeamDeathMatch GameMode中设置的Default Pawn Class 为 PlayerPawn , PlayerP ...
- Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...
- AgileEAS.NET SOA 中间件2013第四季度发布&部分功能开源预告
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...