Bean、消息、事件
Spring的核心是一个容器(Container),它实现了IoC的概念,可以协助管理各个对象的生命周期,以及对象之间的依赖关系。在核心容器的使用,熟悉BeanFactory与ApplicationContext的运用是了解Spring的重点所在。
1 Bean基本管理
1.1 BeanFactory、ApplicationContext
BeanFactory负责读取Bean定义文件;管理对象的加载、生成;维护Bean对象与Bean对象之间的依赖关系;负责Bean的生命周期。对于简单的应用程序来说,使用BeanFactory就已经足够来管理Bean了,在对象的管理上已可以获得许多的方便性,BeanFactory接口包括了6种方法可以调用。
boolean containsBean(String)
测试BeanFactory中是否包含指定名称的Bean。
Object getBean(String)
指定Bean定义文件中设置的名称,可取得相对应的Bean实例。
Object getBean(String,class)
指定Bean定义文件中设置的名称,取得相对应的Bean实例,并转换(Cast)至指定的类。
Class getType(String name)
指定Bean定义文件中设置的名称,取得对应的Bean的class实例
boolean isSingletom(String)
指定Bean定义文件中设置的名称,测试指定的Bean之scope是否为Singleton(之后在Bean的scope中会说明)。
String[] getAliases(String)
指定Bean定义文件中设置的名称,取得该Bean所有的别名(之后在Bean的识别名称与别名中会说明)。
不过作为一个应用程序框架,只提供Bean容器管理的功能是不够的,若要利用Spring所提供的一些特色以及高级的容器功能,可以使用org.springframework.context.ApplicationContext.ApplicatonContext是基于BeanFactory而建立的,也具备读取Bean定义文件,维护Bean之间的依赖关系等功能,除此之外,ApplicationContext还提供一个应用程序所需的更完整的框架功能,例如:
提供更方便地取得资料文件(Resources file)的方法。
提供解析文字消息的方法。
支持国际化消息
ApplicationContext可以发布事件,对事件感兴趣的Bean可以接收到这些事件。
Spring的创始者Rod Johnson建议使用ApplicationContext来取代BeanFactory,在实现ApplicationContext的类中,最常使用的大概是以下3个。
org.springframework.context.support.fileSystemXmlApplicationContext
可指定XML定义文件的相对路径或绝对路径读取定义文件。
org.springframework.context.support.ClassPathXMlApplicationContext
从Classpath设置路径中读取XML定义文件
org.springframework.web.context.support.XmlWebApplication
在Web应用程序的文件架构中,指定相对位置读取定义文件。
在Spring中整合Hibernate
Spring整合了对Hibernate的设置,并提供了org.springframework.orm.hibernate3.HibernateTemplate等类,让您在结合Hibernate使用时可以简化程序编写的流程,并且与JDBC相类似的使用模型提供使用Hibernate时的编程事务管理与声明事务管理
SessionFactory注入
Spring可以与Hibernate结合使用,Hibernate的连结、事务管理等是由建立SessionFactory开始的,SessionFactory在应用程序中通常只需存在一个实例,因而SessionFactory底层的DataSource可以使用Spring的Ioc注入,之后再把SessionFactory注入至相依赖的对象之中。
例如可以修改前面的项目,首先可删除hibernate.cfg.xml,因为这部分可以由Spring在Bean定义文件中编写DataSource设置以及依赖注入来取代,可以如下编写Spring的Bean定义文件:
bean-config.xml
....
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/demo"/>
<property name="username" value="caterpillar"/>
<property name="password" value="123456"/>
</bean>
...........
HibernateTemplate
Spring的Template-callback机制在Hibernate的实现提供了org.springframework.orm.hibernate3.HibernateTemplate类与org.springframework.orm.hibernate3.HibernateCallback接口。
分享到:
相关推荐
标题中的"Spring学习笔记之一“why spring”"表明了这篇笔记主要探讨的是Spring框架的核心价值和使用背景。在IT行业中,Spring是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(Dependency Injection,DI)...
5. **数据访问集成**:Spring支持多种数据库访问技术,包括JDBC、Hibernate、MyBatis等,通过提供模板类和DAO支持简化数据访问操作。 6. **MVC框架**:Spring MVC为Web应用提供了模型-视图-控制器模式的实现,使得...
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................
这个压缩包包含了关于Struts2的笔记、帮助手册和中文教程,旨在帮助开发者深入理解和掌握Struts2的核心概念和技术。同时,提及了Spring框架,表明Struts2与Spring的集成也是学习的重点之一。 首先,让我们深入了解...
【云笔记项目】是一个基于SSH(Struts2 + Spring + Hibernate)框架的简易应用程序,它旨在提供一个在线记事本服务,让用户可以方便地创建、编辑和存储笔记,并实现云端同步,以便在不同设备上访问。这个项目对于...
标题中的“一个后端技术栈分享平台”表明这是一个专注于后端开发的学习资源集合,而“主要收集后端相关的技术文档、读书笔记、专题学习等”则揭示了这个平台包含的内容类型,涵盖了技术文档、个人阅读心得以及系统化...
### JavaWeb 学习笔记知识点总结 #### Spring Boot 和 Spring MVC 的区别 1. **Spring MVC**: - **定位**:Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建 Web 应用程序。 - **作用**:提供了一...
他的著作还包括《Spring 技术手册》,并且他作为SUN官方教材的主要编写成员之一,其专业性和权威性不言而喻。 在《JAVA 学习笔记》中,良葛格深入浅出地讲解了Java编程语言的基础知识和进阶技巧,旨在帮助读者从零...
2. 笔记整理:笔记整理是指学习者在上课过程中记录的课堂内容,是对培训课程的一个总结和梳理,便于复习和回顾知识点。 3. HTML&JavaScript:HTML是构建网页内容的标记语言,而JavaScript是一种脚本语言,用于实现...
著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一 博客: http://blog.csdn.net/caterpillar_here 详细信息: http://www.china-pub.com/computers/common/info.asp?id=31664
Java JDK 5.0学习笔记 1至6章及附录A和附录B 包含java特性、java学习方法、网络资源...著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一 博客: http://blog.csdn.net/caterpillar_here
很多方法! 特别适合初学者 JAVA . 作者:林信良(网络化名良葛格) 学历:台湾大学电机工程学系 经历:SUN教育训练中心讲师 著作:《JAVA 学习笔记》、《Spring 技术手册》,为SUN官方教材主要编写成员之一
本人资源全部免费,更多资源请查看我的上传资源 ==========================... 著作:《Java JDK 5.0学习笔记》、《Java SE 6技术手册》、《Spring技术手册》等 译作:《Ajax实战手册》、《jQuery实战手册(第2版)》
Spring学习笔记...............345 第一章 Spring概述..........................345 第二章 Spring IOC(控制反转)........347 第三章 Spring AOP(面向切面编程)..........351 第四章 Spring中的数据访问.............
标题中的“课设毕设Springboot学生读书笔记共享-LW+源码可运行.zip”表明这是一个针对学生课程设计或毕业设计的项目,它基于SpringBoot框架,并且包含了读书笔记共享的功能。源码是可运行的,这意味着学生们可以下载...
- `man`:查看命令手册,获取命令的使用说明。 - `cd`:改变当前工作目录。 - `pwd`:显示当前工作目录的完整路径。 - `cp`:复制文件或目录。 - `rm`:删除文件或目录。 - `mv`:移动文件或重命名文件。 - `cat`与`...
这份"java学习笔记(学习java的好书)"的PDF文档,显然是一个全面学习Java编程的资源,旨在帮助初学者和经验丰富的开发者深入理解Java的核心概念和技术。W3School离线完全版的加入,意味着这份资料还可能涵盖了Web开发...
它提供了从设计、部署到执行的全过程支持,是基于Java技术的企业级流程管理框架。jbpm不仅适合大型企业,也适合中小型企业,因为它具有高度可扩展性和灵活性。 jbpm中文开发指南是针对中国开发者编写的,旨在帮助...
总而言之,这份“Java学习笔记”通过总结和梳理Java编程语言的基础知识、数据库操作、Web开发技术、Spring框架以及Linux命令,为学习者提供了一个全面而系统的学习路径,有助于学习者快速构建起扎实的Java开发能力。...