云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 学习笔记之十五Spring

学习笔记之十五Spring

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 16:50:27

一、Spring概述

我们学习Spring框架的最终目的是用它整合Struts2、Hibernate框架(SSH)。

1.1 Spring框架的作用

Spring框架主要负责技术整合(可以整合很多技术),该框架提供IoC和AOP机制,基于这些特性整合,可以降低系统组件之间的耦合度,便于系统组件的维护、扩展和替换。

1.2 Spring框架的优点

其实与Spring框架的作用相同:

在SSH中,主要是利用Spring容器管理我们程序中的Action、DAO等组件,通过容器的IoC机制,可以降低Action、DAO之间的耦合度(关联度),利用AOP进行事务管理等共通部分的处理。

在SSH中,Struts2主要是利用它的控制器,而不是标签、表达式;Hibernate主要利用它的数据库访问;Spring主要是利用它的整合。

1.3 Spring框架的容器

Spring框架的核心是提供了一个容器(是我们抽象出来的,代指后面的类型)。该容器类型是BeanFactory或ApplicationContext(建议用这个类型,它是BeanFactory的子类,功能更多)。

该容器具有以下功能:

1)容器可以创建和销毁组件对象,等价于原来“工厂”类的作用。 2)容器可以采用不同的模式创建对象,如单例模式创建对象。 3)容器具有IoC机制实现。 4)容器具有AOP机制实现。

1

二、Spring容器的基本应用

2.1如何将一个Bean组件交给Spring容器

1)Bean组件其实就是个普通的Java类!

2)方法:在applicationContext.xml中添加以下定义,见2.6案例中step4。

1)实例化容器: ApplicationContext ac=new ClassPathXmlApplicationContext(\//FileSystemXmlApplicationContext(\去指定的磁盘目录找,上面的为去Class路径找 2)利用getBean(\标识符\方法获取容器中的Bean对象。见2.6案例中step5。

2.3如何控制对象创建的模式

Spring支持singleton(单例)和prototype(原型,非单例)两种模式。 默认是singleton模式,可以通过的scope属性修改为prototype模式。以后在Web程序中,通过扩展可以使用request、session等值。见2.6案例中step4、step7。 例如:

2.4 Bean对象创建的时机

1)singleton模式的Bean组件是在容器实例化时创建。 2)prototype模式是在调用getBean()方法时创建。

3)singleton模式可以使用元素的lazy-init=\属性将对象的创建时机推迟到调用getBean()方法。也可以在(根元素)中使用default-lazy-init=\推迟所有单例Bean组件的创建时机。见2.6案例中step3、step4。 例如:

1)初始化:①可以利用元素的init-method=\方法名\属性指定初始化方法。

②指定的初始化方法是在构造方法调用后自动执行。若非单例模式,则每创建一个

对象,则执行一次初始化方法(单例、非单例模式都可)。见2.6案例中step3、step4。

? 注意事项:

? 初始化的三种方式:写构造方法中;或写{ }中(代码块);Spring框架中

元素写init-method=\方法名\属性。

? 初始化不能用static{ },它是类加载调用,比创建对象要早。

2)销毁:①可以利用元素的destroy-method=\方法名\属性执行销毁方法。

②指定的销毁方法是在容器关闭时触发,而且只适用于singleton模式的组件(只能

为单例模式)。见2.6案例中step3、step4、step6。

2.6案例:Spring框架的使用以及2.1节-2.5节整合测试

step1:导入Spring开发包:spring.jar、commons-logging.jar和配置文件:applicationContext.xml

2

public void delete(); public void save(); } } step2:在org.tarena.dao包下,创建接口CostDAO,添加两个方法 step3:在org.tarena.dao包下,创建JdbcCostDAO类,并实现CostDAO接口 public JdbcCostDAO(){ System.out.println(\创建CostDAO对象\ public void myinit(){ System.out.println(\初始化CostDAO对象\ public void mydestroy(){ System.out.println(\销毁CostDAO对象\ } public void delete() { System.out.println(\利用JDBC技术实现删除资费记录\public void save() { System.out.println(\利用JDBC技术实现保存资费记录\step4:在applicationContext.xml配置文件中,将Bean组件(Java类)交给Spring容器 step5:在org.tarena.test包下,创建TestApplicationContext类,获取Spring容器对象,并测试 @Test public void test1(){ String conf=\ ApplicationContext ac=new ClassPathXmlApplicationContext(conf);//实例化容器 CostDAO costDAO=(CostDAO)ac.getBean(\获取Bean对象 costDAO.save(); costDAO.delete(); } step6:在TestApplicationContext类中添加方法,测试销毁对象 @Test /**关闭容器才会触发销毁,但关闭容器方法封装在AbstractApplicationContext类中 */ public void test2(){ String conf=\ ApplicationContext ac=new ClassPathXmlApplicationContext(conf); AbstractApplicationContext ac=new ClassPathXmlApplicationContext(conf); CostDAO costDAO=(CostDAO)ac.getBean(\ ac.close(); } step7:在TestApplicationContext类中添加方法,测试单例

3

@Test public void test3(){ String conf=\ ApplicationContext ac= new ClassPathXmlApplicationContext(conf); CostDAO costDAO1=(CostDAO)ac.getBean(\ CostDAO costDAO2=(CostDAO)ac.getBean(\ System.out.println(costDAO1==costDAO2);//true,所以Spring默认为单例模式 } 4

搜索更多关于: 学习笔记之十五Spring 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一、Spring概述 我们学习Spring框架的最终目的是用它整合Struts2、Hibernate框架(SSH)。 1.1 Spring框架的作用 Spring框架主要负责技术整合(可以整合很多技术),该框架提供IoC和AOP机制,基于这些特性整合,可以降低系统组件之间的耦合度,便于系统组件的维护、扩展和替换。 1.2 Spring框架的优点 其实与Spring框架的作用相同: 在SSH中,主要是利用Spring容器管理我们程序中的Action、DAO等组件,通过容器的IoC机制,可以降低Action、DAO之间的耦合度(关联度),利用AOP进行事务管理等共通部分的处理。 在SSH中,Struts2主要是利用它的控制器,而不是标签、表达式;Hibernate主要利用它的

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com