Spring beanfactory:
? BeanFactory是产生和管理bean的容器
? Tomcat可以看成是一个bean的容器
Spring实例化Bean:
1. 实例化方式()
1> 用构造器来实例化<bean id="XXXbean" class=""/>
2>使用静态工厂方法实例化<bean id="XXXbean" class="XXXfactoryClass" factory-method=""/>
3>使用实例工厂方法实例化<bean id="XXXfacotry" class=""/>
<bean id="XXXbean" factory-bean="XXXfacotry" factory-method=""/>
2. bean作用域
在Spring中,从BeanFactory或ApplicationContext取得的实例被默认为Singleton,也就是默认每一个Bean名称只维持一个实例。scope属性预设是"singleton",通过将其设置为"prototype",使得每次指定名称来取得Bean时,都会产生一个新的实例。也可以设置"singleton"属性为true或false,来设置以Singleton的方式产生实例,这种方式主要与以前的版本兼容而保留的。
Spring的Singleton主要是针对"一个IoC容器维持一个Bean实例"而言的。与设计模式上谈到的Singleton不同,设计模式上谈到的Singleton,是指对每个ClassLoader所载入的类产生一个实例。
Spring2.0中,scope除了可以设置"singleton" 与"prototype"之外,针对Web应用程序环境,还可以设置"request"、"session"与"globalSession",分别表示请求阶段、会话阶段与基于Portlet的Web应用程序会话阶段
scope =singleton(单例,默认值) lazy-init才有效
lazy-init=true 第一次getBean方法执行时创建bean
lazy-init=false(默认值)创建beanFactory时创建bean
scope=prototype(多例) lazy-init无效,每次调getBean时都会创建bean
3. ioc控制反转/di依赖注入
控制反转就是应用本身(Service)不负责依赖对象(Dao)的创建及维护,依赖对象的创建及维护是由外部容器(BeanFactory)负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
依赖注入就是指:在运行期,由外部容器(BeanFactory)动态地将依赖对象(Dao)注入到组件(Service)中。
? 注入方式分为
1. Setter注入法默认<bean><property>
2. 构造方法注入法<bean><constructor-arg>
spring不支持date自动转化,所以需要自定义属性注入类型转换
1.编写类型转换类,必须继承java.beans.PropertyEditorSupport, 复写public void setAsText(String arg0) throws IllegalArgumentException
arg0代表从applicationContext.xml中读出的字符串
在方法体内
a.属性类型转换代码 String->Date
b.setValue(Object) 将转换后的值传进来
2.在配置文件中定义bean,其中CustomEditorConfigurer是Spring提供给用户做自定义类转换的接口
用户编写的类型转换类应该被添加(注入)到CustomEditorConfigurer类customEditors属性中
customEditors的key是转换后的类型的字符串,value是用户自定义的类型转换类
<bean id="customEditorConfigurer“ class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
key="java.util.Date <entry
“ value-ref="datePropertyEditor"></entry>
</map>
</property>
</bean>
3. 注解注入法<bean>不放标签
? 1. 2. 3. 4. 注入数据类型分为 引用型注入 ref value 基本数据类型注入 集合类型注入 自定义类型注入 <list><set><map><props>
第二篇:spring总结
《Spring 从入门到精通》的总结
第一部分 Spring 入门
第一章 Spring概述
总体上讲解了Spring框架
第二章 开始Spring之
讲述了一个简单的Spring实例
第二部分Spring 技术祥解
第三章 Spring 基础概念、
反向控制/依赖注册:
反向控制:
依赖注册:
三种注入方式: 接口注入 Set注入 构造注入
实例演示:
使用哪种注入方式:
第四章 Spring 核心容器
bean的定义及功能:
bean 的基础知识 : id class Singleton depends-on
bean的属性 null
bean 的生命周期 : 定义 初始化(2) 使用
销毁(2)
ref的属性指定依赖的三种模式 : local Bean Parent
比较 bean自动装配模式:byName byType constructor autodetect no
总结
bean依赖检查模式:simple object all none 总结
集合注入方式 : List Set Map Properties 总结
bean 管理 : 使用BeanWrapper管理 Bean 使用BeanFactory
管理Bean
使用ApplicationContext管理Bean
ApplicaitonContext更强的动能 : 国际化支持 资源访问
事件传递
第五章 Spring 的 AOP
AOP基本思想:认识 AOP AOP与OOP对比分析
AOP与JAVA的代理机制
输出日志的是实例代码:通用的日志输入方法 通过
面向接口编程实现日志输出 用java的代理机制进行日志输出 Aop的三个关键概念: 切入点(Pointct) 通知(Advice) Advisor Spirng的三种切入点: 静态切入点 动态切入点 自定义切入
点 SPring的通知(ADvice): Interception
Around通知 Before通知 after Returning通知 Throw通知 Introduction通知 Spring 的Advisor : 用
PROXYFACTORYBEAN创建AOP :使用PROXYFACTORYBEAN代理目标类的所有方法 使用PROXYFACTORYBEAN代理目标类指定方法 正则表达式 简介
把输出日志的实例改写成用SPRING的AOP 来实现: 采用 INTERCEPTION AROUND通知的形式实现 采用BEFORE通知的形
式实现采用AFTER RETURNING通知的形式实现 采用THROW通知
形式实现 SPRNG 中的良种代理方式: JAVA 动态代理
CGLIBE代理 SPRING中的自动代
理: AOP 的实
例:
第六章 Spring 事务处理
简述事务处理: 事务的基本概念 事务的处理特性
事务处理的三种注入方式:关系型数据库事务处理 传统的JDBC事务
处理
分布式事务处理
Spring 的事务处理: Spring 事务处理概述 编程式事务处理
声明式事务处理
用编程式还是声明式事务处理:
第七章 Spring 持久层封装
传统的JDBC数据库访问技术 :
通过XML实现DataSource注入 :使用DBCP连接池
使用Spring自带的DriverManagerDataSource 使用Tomcat提
供的 JNDI
使用JdbcTemplate访问 : 数据 Template模式简
介
事务处理TransactionTtemplate的实现方式 JdbcTempate
的实现方式
使用JdbcTemplate查询数据库 使用
JdbcTemplate更改数据库
使用ORM工具访问数据:ORM简述 使用Hibernate 使用iBatiks
第八章 Spring 的WEB框架
第九章 Spring 的定时器
定时器简述 :
定时器的两种实现方式 :
Timer Quartz 两种方式的比较
利用Spring简化定时任务的开发 :在Spring 中使用Timer实现定时器
在Spring中使用Quartz实现定时器
第三部分 Spring与其他工具整合应用
第十章 Spring与Struts的整合
Struts介绍 : Struts的历史 Struts体系结构
Struts的下载: 下载Struts 配置Struts
Jsp页面的 Struts实例:
Struts的主要类 :ActionServlet Action ActionMapping ActionForm
DispatchAction
国际化支持:
Struts的自定义的标签 : Bean标签 Logic标签 Html标签 Spring 与Struts整合: 通过 Spring的ActionSupport类
通过 Spring 的DelegatingRequestProcessor类 通过Spring的DelegatingActionProxy类 比较三种整合方式
编写一个注册的例子:
第十一章 Spring 与Hibernate的整合
Hibernate 介绍:
Hibernate的下载 和配置:下载Hibernate 配置Hibernate
编写一个Hibernate的简单的实例:
Hibernate的配置:
Hibernate的映射:集合映射 组件映射 关联映射 继承映射 Hibernate 的工具:
Hibernate的几个主要简介: Configuration (管理Hibernate) SessionFactory( 创建 Session) Session(提供Connection)
通过XML来整合Spring和Hibernate :
用Struts , Hibernate ,Spring 编写一个实例 :
第十二章 在Spring 中使用Ant
第十三章 在Spring 中使用Junit
第四部分 Spring实例
第十四章 用Spring实现新闻发布系统实例