Spring经典总结(一)

2014-11-24 08:27:12 · 作者: · 浏览: 0
1.Spring作用和优点
a.Spring框架是解决方案级的框架或者说整合框架,是各种组件、技术
的使用平台,可以在这个平台上使用Struts,Hibernate,JDBC技术并且可
以可以实现各种开发技术的组合。Spring提供了IoC和AOP机制的实
现,可以改善程序结构,提高系统的灵活性,便于维护和扩展。
Spring主要作用:让组件之间实现低耦合(方便解耦),让程序结构更
加灵活,方便日后的维护和扩展
低耦合:组件与组件之间的关联度较低
Spring相当于主机中的主板,而struts、Hibernate、jsp相当于主板上
的cpu、内存、显卡之类的组件(主板特点:可插拔 )
b.在SSH使用中,Spring提供了一个容器,该容器具有IOC和AOP机
制,利用这个容器IOC机制管理程序中的DAO,Service等组件,采用
AOP机制实现事务,异常日志记录等共通处理。
2.Spring容器简介
1)Spring容器是Spring框架的基础和核心。该容器具有以下功能:
a.可以创建和初始化一个Bean组件对象
在spring里,任何java对象和java组件都被当成bean处理。
b.可以管理Bean对象的生命期
c.可以利用IoC机制建立Bean对象之间的关系
d.可以利用扩展的AOP机制将共通组件和某一批目标组件对象建立关联。
(需要引入AOP扩展jar包)
2)Spring容器类型可以使用BeanFactory或者ApplicationContext.
--Spring容器实例化
ApplicationContext ac =new ClasspathXmlApplicationContext(xml配置);
--从Spring容器获取Bean对象
接口类型 变量 = (接口类型)ac.getBean("id属性");
--销毁Spring容器
使用AbstractApplicationContext类型的close();
一般情况下,销毁容器对象由Spring管理完成,无需手动销毁。如果要
手动销毁需要使用AbstractApplicationContext容器,调用
AbstractApplicationContext容器的close()方法。
3)Spring容器的使用方法
--引入spring核心包
--在src下添加spring配置文件
--在spring配置文件定义Bean组件
eg:
applicationContext.xml:
--实例化spring容器,通过容器的getBean("标识符")方法获取
eg:
public static void main(String[] args) {
// CostDAO costDao = new JdbcCostDAO();
// costDao.save();
// costDao.update();
// 获取Spring容器中的CostDAO
// 第一步实例化Spring容器
String conf = "applicationContext.xml";
// 用于加载src下的xml配置文件
AbstractApplicationContext ac = new
ClassPathXmlApplicationContext(conf);
// AbstractApplicationContext ac = new
FileSystemXmlApplicationContext 用于加载磁盘路径的xml配置
// 获取容器中的DAO
CostDAO costDao = (CostDAO) ac.getBean("costDao");
costDao.save();
costDao.update();
// ac.close();//销毁Spring容器
}
3.Spring容器对Bean组件的管理
*1)创建Bean对象的方式
Spring可以采用单例模式和非单例模式创建Bean对象。
默认情况下,采用单例模式创建Bean对象。
中利用scope属性控制创建模式。
scope="singleton"采用单例模式,
scope="prototype"采用原型(非单例)模式
(在JavaWeb环境中,scope属性值还可以指定request,session等范围)
如果scope="singleton",Spring容器实例化时,会自动创建Bean组件
对象。
如果scope="prototype",Spring容器会在调用getBean方法时创建Bean
对象。
scope属性的取值介绍:
在web(仅限于web项目)环境中,还可以设置所创建的bean对象的生命周期和request、session。
a.request 表示bean对象生命周期和request生命周期相同
b.session 表示bean对象生命周期和session生命周期相同
c.global session 相当于application
d.singleton 单例模式
e.prototype 原型模式
2)Bean对象的创建时机
默认是随着容器创建,可以使用lazy-init=true设置(在调用getBean()创建)
延迟创建
3)Bean对象的初始化和销毁
使用
可以指定Bean对象创建和销毁时触发的方法。
destroy-method只适用于scope="singleton"模式.
当调用applicationcontext.close()时,容器会自动销毁所有单例对象,此时会