版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章Spring框架入门11.1下载Spring框架11.2Spring框架作用及特点11.3Spring框架核心架构11.4Spring应用环境搭建11.5Bean的装配110.6IoC11.7BeanFactory与ApplicationContext11.1下载Spring框架(1)下载地址:/download发布包结构说明:aspectj
。包含AspectJ相关的源代码(src文件夹)及应用AspectJ的单元测试类(test文件夹)。dist。包含Spring源码文件及发布的JAR文件。docs。包含Spring框架的API文档(api文件夹),SpringMVC学习教程(MVC-step-by-step文件夹),Spring参考文档(reference文件夹)以及Spring框架标签库文档(taglib文件夹)。lib。包含所有Spring支持的第三方类库。mock。包含Spring框架的测试类源码。samples。包含Spring框架的应用实例。11.1下载Spring框架(2)src
。包含Spring框架的源码。test。包含Spring框架的单元测试类源码。tiger。包含JDK5.0新特性相关源代码(src文件夹)以及使用JDK5.0新特性的单元测试类(test文件夹)。
返回11.2Spring框架作用及特点
Spring框架是一个轻巧的,易于开发、测试的轻量级框架,适用于开发大型的JavaEE应用。Spring框架的主要特点如下:轻量级:Spring无论是大小还是系统开销都算是轻量级的,整个框架可以被压缩在几M的JAR包中,应用中处理Spring的开销也微乎其微。方便解耦:Spring提倡通过控制反转(IoC)技术实现松耦合。通过Spring中的IoC容器管理各个对象之间的依赖关系,能够有效避免硬性编码造成的耦合过于紧密的状况。面向切面编程(AOP):Spring对面向切面编程提供了良好的支持,通过Spring提供的AOP功能,可以轻松实现业务逻辑与系统服务(例如日志、事务等)的分离。这样一来,使得开发人员能够更加专注于业务逻辑实现。方便集成其他框架:Spring框架允许集成其他多种框架共同进行开发设计,比如Hibernate、Struts、Struts2,iBATIS等框架。返回11.3Spring框架核心架构(1) Spring框架主要由7个模块组成,这些模块实现功能不同,实际应用中可以根据开发需要选择合适的模块。其架构图如下
11.3Spring框架核心架构(2)各模块功能如下:核心模块(Core):该模块是整个框架的最基本组成部分,它提供了依赖注入的功能及对Bean容器的管理功能。通过依赖注入,使得类与类之间不再由硬性编码方式发生关系,而是通过配置实现这一过程,降低了各个类之间耦合的紧密度。Spring框架提供的BeanFactory接口,进一步消除了应用对工厂的依赖。AOP模块(AOP):该模块提供了对AOP的支持,允许我们以面向切面的方式开发程序。同时Spring框架提供了AspectJ的整合。上下文模块(Context):该模块构建于核心模块之上,提供了对Bean的框架式访问。该模块还扩展了BeanFactory功能。DAO模块(DAO):该模块对JDBC进行轻量封装,用以提供对JDBC操作的支持。使用传统的SQL语句执行JDBC操作,复杂且极容易发生错误。Spring通过对JDBC的轻量封装,使得操作变得更加简单化。同时Spring提供了声明式的事务管理,使开发者不必在烦琐的事务方面花费过多的精力。11.3Spring框架核心架构(3)ORM模块(ORM):该模块允许Spring集成各种ORM(Object-RelationMapping)框架来实现持久层的应用。各种ORM框架以插件的形式集成到Spring框架中,并由Spring框架来完成事务管理及异常处理。Web模块(Web):该模块也是构建于核心模块之上的,它提供了对Web各种应用的全面支持。Spring的MVC模块(MVC):该模块提供了一个完整的MVC(Model-View-Controller)的解决方案,使用Spring框架的MVC模块进行开发,能够更好地结合IoC容器。 实际应用中,并不是所有模块都会被用到,可根据实际需要选择适当的模块进行使用。返回11.4Spring应用环境搭建(1) 创建一个使用Spring框架的JavaEEWeb应用环境的具体实现步骤如下1.创建Web工程。2.在工程中引入Spring所需jar包。3.在工程的web.xml文件中添加Spring监听,添加内容如下
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class></listener>4.添加并配置Spring的核心配置文件applicationContext.xml
11.4Spring应用环境搭建(2)最终的工程结构如右图所示
此时已经搭建好了Spring框架的运行环境。在此基础上,我们就可以开始具体代码的编写工作了。返回11.5Bean的装配
Spring中所有的组件都以Bean的形式存在。要想使用容器管理Bean,必须在配置文件中规定好各个Bean的属性及依赖关系。基本配置方式添加属性简化配置返回11.5.1Bean的装配—基本配置方式在配置文件中装配一个Bean的最基本格式如下<?xmlversion="1.0"encoding="GBK"?><beansxmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd">
<beanid="user"class="sunyang.Spring.User"/></beans> 所有bean都是配置在<beans>标签中的,通过<bean>标签来声明一个bean,其中id指定了bean的名称,class指定了bean对应的类路径。返回11.5.2Bean的装配—添加属性(1) 通过<property>元素为Bean组件添加属性,该属性可以是一个变量、一个集合或者对其他Bean的一个引用。
为bean添加一个变量属性。示例如下
<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <value>SunYang</value> </property> </bean>这里添加的变量名称为name,变量值为SunYan。11.5.2Bean的装配—添加属性(2)为Bean添加List类型属性和Set类型属性的格式相同。以添加List类型属性为例,示例如下
<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <list> <value>SunYang</value> <value>Spring</value> <value>IoC</value> </list> </property> </bean>
这里为bean添加了一个list类型的属性“name”,值为“SunYang”,“Spring”和“IoC”。11.5.2Bean的装配—添加属性(3)为Bean添加Map类型属性,示例如下
<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <map> <entry> <key><value>name</value></key> <value>John</value> </entry> <entry> <key><value>password</value></key> <value>1234</value> </entry> </map> </property> </bean>为Bean添加Map类型属性时,必须同时声明key和value。11.5.2Bean的装配—添加属性(4)引用其他Bean。示例如下
<beanid="man"class="sunyang.Spring.Man"/> <beanid="user"class="sunyang.Spring.User"> <propertyname="man"> <refbean="man"/> </property> </bean>这里在user对应的Bean中引用了man对应的Bean。返回11.5.3Bean的装配—简化配置(1)为bean添加一个变量属性的简化配置为
<beanid="user"class="sunyang.Spring.User"> <propertyname="name"value="Sunyang"/> </bean>为Bean添加Map类型属性的简化配置为
<beanid="user"class="sunyang.Spring.User"> <propertyname="name"> <map> <entrykey="name"value=“John"/> <entrykey=“passowrd"value=“1234"/> </map> </property> </bean>11.5.3Bean的装配—简化配置(2)引用其他Bean的简化配置如下
<beanid="man"class="sunyang.Spring.Man"/> <beanid="user"class="sunyang.Spring.User"> <propertyname="man"ref="man"/> </bean>返回11.6IoC Spring框架是一个轻量级框架,通过IoC容器统一管理各组件之间的依赖关系,以此来降低组件之间耦合的紧密程度。概念实现方式返回11.6.1IoC—概念
IoC(InverseofControl)通常被称为控制反转。它是一种设计模式,主要关注组件的依赖性、配置及组件的生命周期。特点:
让容器去全权负责依赖查询,受管对象只需暴露JavaBean的Setter方法或者带参数的构造方法,使容器可以在初始化时组装对象的依赖关系。查找定位操作与应用代码完全无关。不依赖容器的API不需要特殊的接口返回11.6.2IoC—实现方式(1)
IoC一个更直观的名称就是依赖注入(DependencyInjection,DI),意思就是由框架或容器将被调用类注入给调用对象,以此来解除调用对象和被调用类之间的依赖关系。它的实现方式有3种:构造函数注入。构造函数注入方式是通过调用类的构造函数,并将被调用类当做参数传递给构造函数,以此来实现注入。例如将对象B注入到类A中,示例如下publicclassA{privateBb;publicA(Bb){
this.b=b;}}11.6.2IoC—实现方式(2) 在applicationContext.xml中添加bean配置如下 <beanid=“b"class=“com.B"/> <beanid=“a"class=“com.A"> <propertyname=“b"ref=“b"/> </bean>设置方法注入。通过添加并使用被调用类的setter方法来完成注入过程。示例如下publicclassA{privateBb;publicvoidsetB(Bb){
this.b=b;}}在applicationContext.xml中添加bean配置与构造函数注入相同。11.6.2IoC—实现方式(3)接口注入。接口注入方式将被调用类所有需要注入的方法封装到接口中,被调用类实现该接口中定义的方法,以此来实现注入。在实际应用中这种注入方式很少被用到,因为其实现机制与设值方法注入方式相似,但却需要多定义一个类来封装需要注入的方法。在一个大型应用中,使用接口注入方式会带来很多额外的开销,因此这种注入方式不被推荐。返回11.7BeanFactory与 ApplicationContext(1) 在Spring框架中,对IoC容器的访问则是通过BeanFactory和ApplicationContext这两个接口实现的。BeanFactory
对应于com.springframework.beans.factory.Beanfactory,提供了IoC的相关配置机制。BeanFactory对Bean组件的常见操作主要包括如下几个部分创建Bean。BeanFactory不仅可以产生对象还能够管理对象,BeanFactory生成对象的方式主要有3种:构造函数创建方式、静态工厂创建方式和非静态工厂创建方式。11.7BeanFactory与 ApplicationContext(2)初始化JavaBean。容器根据XML配置文件中Bean组件的配置,实例化Bean对象,并将目标JavaBean注入到指定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园元旦汇演活动方案4篇
- 2024秋七年级数学上册 第四章 几何图形初步4.2 直线、射线、线段 2线段的大小教学思路(新版)新人教版
- 2024年虚拟现实设备采购合同
- 文字计算题(教学实录)-2024-2025学年四年级上册数学沪教版
- 二年级品德与生活上册 3.3 做个快乐鸟4教学思路 新人教版
- 音乐教学工作计划2023年(7篇)
- 我有一个梦想演讲稿500字
- 26方帽子店j教学实录-2023-2024学年三年级下册语文统编版
- 公司年度个人工作总结简短
- 山东省淄博市临淄区皇城镇第二中学初中体育《篮球》教学实录 新人教版
- 2024多级AO工艺污水处理技术规程
- 专题07:课内课外文言文阅读(解析版)-2022-2023学年七年级语文下学期期中专题复习(浙江专用)
- 2024江西水利职业学院教师招聘考试笔试试题
- 幼儿园大班艺术课件:《都睡着啦》
- 基于人工智能的物联网预测模型
- 文化产业概论智慧树知到期末考试答案章节答案2024年宁波大学
- 办公楼装修改造施工组织设计方案
- 年终营销方案主题
- SY-T 6966-2023 输油气管道工程安全仪表系统设计规范
- MOOC 数据库原理与应用-北京林业大学 中国大学慕课答案
- 2024巴西市场中轻度手游洞察报告
评论
0/150
提交评论