您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > Spring入门到精通
讲师:佟刚新浪微博:尚硅谷-佟刚B\STomcatdbBrowserStruts2FilterServiceHiberntateSpringIOCTransactionManagerShiroQuartzHelloWorld讲师:佟刚新浪微博:尚硅谷-佟刚Spring是什么(1)•Spring是一个开源框架.•Spring为简化企业级应用开发而生.使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能.•Spring是一个IOC(DI)和AOP容器框架.J2eewithoutejbSpring是什么(2)•具体描述Spring:–轻量级:Spring是非侵入性的-基于Spring开发的应用中的对象可以不依赖于Spring的API–依赖注入(DI---dependencyinjection、IOC)–面向切面编程(AOP---aspectorientedprogramming)–容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期–框架:Spring实现了使用简单的组件配置组合成一个复杂的应用.在Spring中可以使用XML和Java注解组合这些对象–一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring自身也提供了展现层的SpringMVC和持久层的SpringJDBC)Spring模块7安装SPRINGTOOLSUITE•SPRINGTOOLSUITE是一个Eclipse插件,利用该插件可以更方便的在Eclipse平台上开发基于Spring的应用。•安装方法说明(springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite.zip):–Help--InstallNewSoftware...–ClickAdd...–IndialogAddSitedialog,clickArchive...–Navigatetospringsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite.zipandclickOpen–ClickingOKintheAddSitedialogwillbringyoubacktothedialog'Install'–Selectthexxx/SpringIDEthathasappeared–ClickNextandthenFinish–Approvethelicense–Restarteclipsewhenthatisasked搭建Spring开发环境•把以下jar包加入到工程的classpath下:•Spring的配置文件:一个典型的Spring项目需要创建一个或多个Bean配置文件,这些配置文件用于在SpringIOC容器里配置Bean.Bean的配置文件可以放在classpath下,也可以放在其它目录下.建立Spring项目HelloWorld.javaapplicationContext.xml建立Spring项目Spring中的Bean配置讲师:佟刚新浪微博:尚硅谷-佟刚内容提要•IOC&DI概述•配置bean–配置形式:基于XML文件的方式;基于注解的方式–Bean的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean–IOC容器BeanFactory&ApplicationContext概述–依赖注入的方式:属性注入;构造器注入–注入属性值细节–自动转配–bean之间的关系:继承;依赖–bean的作用域:singleton;prototype;WEB环境作用域–使用外部属性文件–spEL–IOC容器中Bean的生命周期–Spring4.x新特性:泛型依赖注入IOC和DI•IOC(InversionofControl):其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源.作为回应,容器适时的返回资源.而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源.这种行为也被称为查找的被动形式•DI(DependencyInjection)—IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter方法)接受来自如容器的资源注入.相对于IOC而言,这种表述更直接ABclassA{}classB{privateAa;publicvoidsetA(Aa){this.a=a;}}容器需求:从容器中获取B对象,并使B对象的a属性被赋值为容器中A对象的引用Aa=getA();Bb=getB();b.setA(a);ABIOC容器Bb=getB();IOC前生---分离接口与实现•需求:生成HTML或PDF格式的不同类型的报表.IOC前生---采用工厂设计模式IOC---采用反转控制内容提要•IOC&DI概述•配置bean–配置形式:基于XML文件的方式;基于注解的方式–Bean的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean–IOC容器BeanFactory&ApplicationContext概述–依赖注入的方式:属性注入;构造器注入–注入属性值细节–自动转配–bean之间的关系:继承;依赖–bean的作用域:singleton;prototype;WEB环境作用域–使用外部属性文件–spEL–IOC容器中Bean的生命周期–Spring4.x新特性:泛型依赖注入在Spring的IOC容器里配置Bean•在xml文件中通过bean节点来配置bean•id:Bean的名称。–在IOC容器中必须是唯一的–若id没有指定,Spring自动将权限定性类名作为Bean的名字–id可以指定多个名字,名字之间可用逗号、分号、或空格分隔Spring容器•在SpringIOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化.只有在容器实例化后,才可以从IOC容器里获取Bean实例并使用.•Spring提供了两种类型的IOC容器实现.–BeanFactory:IOC容器的基本实现.–ApplicationContext:提供了更多的高级特性.是BeanFactory的子接口.–BeanFactory是Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext而非底层的BeanFactory–无论使用何种方式,配置文件时相同的.ApplicationContext•ApplicationContext的主要实现类:–ClassPathXmlApplicationContext:从类路径下加载配置文件–FileSystemXmlApplicationContext:从文件系统中加载配置文件•ConfigurableApplicationContext扩展于ApplicationContext,新增加两个主要方法:refresh()和close(),让ApplicationContext具有启动、刷新和关闭上下文的能力•ApplicationContext在初始化上下文时就实例化所有单例的Bean。•WebApplicationContext是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作从IOC容器中获取Bean•调用ApplicationContext的getBean()方法依赖注入的方式•Spring支持3种依赖注入的方式–属性注入–构造器注入–工厂方法注入(很少使用,不推荐)属性注入•属性注入即通过setter方法注入Bean的属性值或依赖的对象•属性注入使用property元素,使用name属性指定Bean的属性名称,value属性或value子节点指定属性值•属性注入是实际应用中最常用的注入方式构造方法注入•通过构造方法注入Bean的属性值或依赖的对象,它保证了Bean实例在实例化后就可以使用。•构造器注入在constructor-arg元素里声明属性,constructor-arg中没有name属性26构造方法注入•按索引匹配入参:•按类型匹配入参:内容提要•IOC&DI概述•配置bean–配置形式:基于XML文件的方式;基于注解的方式–Bean的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法&实例工厂方法)、FactoryBean–IOC容器BeanFactory&ApplicationContext概述–依赖注入的方式:属性注入;构造器注入–注入属性值细节–自动转配–bean之间的关系:继承;依赖–bean的作用域:singleton;prototype;WEB环境作用域–使用外部属性文件–spEL–IOC容器中Bean的生命周期–Spring4.x新特性:泛型依赖注入字面值•字面值:可用字符串表示的值,可以通过value元素标签或value属性进行注入。•基本数据类型及其封装类、String等类型都可以采取字面值注入的方式•若字面值中包含特殊字符,可以使用![CDATA[]]把字面值包裹起来。引用其它Bean•组成应用程序的Bean经常需要相互协作以完成应用程序的功能.要使Bean能够相互访问,就必须在Bean配置文件中指定对Bean的引用•在Bean的配置文件中,可以通过ref元素或ref属性为Bean的属性或构造器参数指定对Bean的引用.•也可以在属性或构造器里包含Bean的声明,这样的Bean称为内部Bean内部Bean•当Bean实例仅仅给一个特定的属性使用时,可以将其声明为内部Bean.内部Bean声明直接包含在property或constructor-arg元素里,不需要设置任何id或name属性•内部Bean不能使用在任何其他地方注入参数详解:null值和级联属性•可以使用专用的null/元素标签为Bean的字符串或其它对象类型的属性注入null值•和Struts、Hiberante等框架一样,Spring支持级联属性的配置。集合属性•在Spring中可以通过一组内置的xml标签(例如:list,set或map)来配置集合属性.•配置java.util.List类型的属性,需要指定list标签,在标签里包含一些元素.这些标签可以通过value指定简单的常量值,通过ref指定对其他Bean的引用.通过bean指定内置Bean定义.通过null/指定空元素.甚至可以内嵌其他集合.•数组的定义和List一样,都使用list•配置java.util.Set需要使用set标签,定义元素的方法与List一样.集合属性•Java.util.Map通过map标签定义,map标签里可以使用多个entry作为子标签.每个条目包含一个键和一个值.•必须在key标签里定义键•因为键和值的类型没有限制,所以可以自由地为它们指定value,ref,bean或null元素.•可以将Map的键和值作为entry的属性定义:简单常量使用key和value来定义;Bean引用通过key-ref和value-ref属性定义•使用props定义java.util.Properties,该标签使用多个prop作为子标签.每个prop标签必须定义key属性.使用utilityscheme定义集合•使用基本的集合标签定义集合时,不能将集合作为独立的Bean定义,导致其他Bean无法引用该集合,所以无法在不同Bean之间共享集合.•可以使用utilschema里的集合标签定义独立的集合Bean.需要注意的是,必须在beans根元素里添加utilschema定义使用p命名空间•为了简化XML文件的配置,越来越多的XML文件采用属性而非子元素配置信息。•Spring从2.5版
本文标题:Spring入门到精通
链接地址:https://www.777doc.com/doc-3661621 .html