书签 分享 收藏 举报 版权申诉 / 61
上传文档赚钱

类型《基于新信息技术的Java-EE应用开发实训》课件第一章.pptx

  • 上传人(卖家):momomo
  • 文档编号:7669686
  • 上传时间:2024-06-24
  • 格式:PPTX
  • 页数:61
  • 大小:396.08KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《基于新信息技术的Java-EE应用开发实训》课件第一章.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于新信息技术的Java-EE应用开发实训 基于 信息技术 Java EE 应用 开发 课件 第一章
    资源描述:

    1、第1章 Spring框架简介与IoC容器1.1Spring简介1.2IoC容器1.3 Spring IoC容器第1章 Spring框架简介与IoC容器1.1Spring简介第1章 Spring框架简介与IoC容器Spring是一个开源框架,它由Rod Johnson创建。Spring诞生之初是为了解决企业应用软件开发日益复杂的难题。Spring创建的初衷如下:(1)J2EE应该更加简单。(2)使用接口而不是使用类,是更好的编程习惯。(3)为JavaBean提供了一个更好的应用配置框架。(4)更多地强调面向对象的设计,而不是现行的技术。(5)尽量减少不必要的异常捕捉。(6)使应用程序更加容易测试

    2、。Spring框架目标:(1)可以令人方便愉快地使用Spring。(2)应用程序代码并不依赖于Spring API。(3)Spring不是和现有的解决方案竞争,而是致力于与现有解决方案融合在一起。第1章 Spring框架简介与IoC容器1.1.1 Spring历史Spring自从2003年发布以来,一直是Java开源框架的奇迹之一。Spring从2004年3月到现在,已经发布了1.0、1.1、1.2、2.0、2.5、3.0、4.0等几个主要版本,目前发布的版本增加了许多特性,比如Spring表达式语言、IoC增强、声明模型验证、更多的注解支持和嵌入式数据库支持等。1.1.2Spring项目简介

    3、围绕着Spring框架本身,有许多优秀的项目,此处只对Spring的常用项目进行简单介绍。(1)Spring Framework(Core):整个Spring项目的核心。(2)Spring Web Flow:定义了一种特定的语言来描述工作流,且其高级的工作流控制器引擎可以管理会话状态,支持AJAX来构建丰富的客户端体验,还能对JSF提供支持。(3)Spring Security:广泛使用的基于Spring的认证和安全工具。(4)Spring Dynamic Modules:可以让Spring应用运行在OSGi平台上。(5)Spring Batch:提供构建批处理应用和自动化操作的框架。第1章

    4、Spring框架简介与IoC容器(6)Spring Android:为Android终端开发应用提供Spring支持,并提供了一个基于Jave的在Android应用环境中工作的REST客户端。(7)Spring Mobile:是基于Spring MVC构建的,可为移动终端的服务器应用开发提供支持。(8)Spring Social:Spring框架的扩展,可以帮助Spring应用更方便地使用SNS(Social Network Service)。所有基于Spring的项目都是以Spring Framework为基础开发出来的。事实上,Spring Framework也是Spring体系的核心。作

    5、为平台,Spring将许多应用开发中遇到的共性问题进行了抽象;同时,作为一个轻量级的应用开发框架,Spring和传统的J2EE开发相比,有其自身特点。通过这些自身特点,Spring充分体现了它的设计理念:支持POJO和使用JavaBean的开发方式、面向接口开发、支持OO(面向对象)的设计方法。第1章 Spring框架简介与IoC容器到目前为止,Spring Framework一共包含大约20个模块,这些模块大多集中在Core Container、Data Access/Integration、Web、AOP、Instrumentation和Test部分。图1-1描述了Spring Frame

    6、work模块的结构。第1章 Spring框架简介与IoC容器以下是部分Spring Framework模块的具体作用。1.Core ContainerCore Container部分主要包含Beans、Core、Context和Expression Language等模块。(1)Beans和Core模块:框架的基础部分,提供依赖注入和IoC(控制反转)特性。(2)Context模块:构建于Beans和Core模块基础之上,提供了一种类似于JNDI注册器的框架式对象访问方法。(3)Expression Language模块:提供了一个强大的表达式语言,可以在运行时查询和操纵对象。2.Data A

    7、ccess/IntegrationData Access/Integration部分包含JDBC、ORM、OXM、JMS和Transaction等模块。(1)JDBC模块:提供了一个JDBC抽象层,可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。(2)ORM模块:为流行的对象/关系映射APIJPA、JDO、Hibernate、iBatis等提供了一个交互层。(3)OXM模块:提供了一个对Object/XML映射实现的抽象层。(4)JMS(Java Messaging Service)模块:主要包含制造和消费消息的特性。第1章 Spring框架简介与IoC容器(5)Transactio

    8、n模块:支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的POJO都适用。3.WebWeb部分包含Web、Servlet、Struts、Porlet等模块。(1)Web模块:提供了基础的面向Web的集成特性,它还包含Spring远程支持中的Web相关部分。(2)Servlet模块:包含Spring的Model-View-Controller(MVC)实现。(3)Struts模块:提供了对Struts的支持,使得类在Spring应用中能够与一个典型的Struts Web层集成在一起。(4)Portlet模块:提供了用于Portlet环境和Web-Servlet模块的MVC实现

    9、。4.AOPAOP即面向切面编程。在程序开发中AOP可以解决一些系统层面的问题。5.Instrumentation和TestInstrumentation模块提供了Class Instrumentation支持和ClassLoader实现,可以在某些特定的应用服务器上使用。Test模块支持使用JUnit和TestNG对Spring组件进行测试。第1章 Spring框架简介与IoC容器1.1.3 Spring Framework安装本节使用的是Spring Framework 3.1.3,以Spring Framework 3.1.3为例,该文件压缩包中含有开发必需的jar包、源代码和帮助文档。

    10、解压包图如图1-2所示,图中各文件夹说明如下:dist:存放Spring Framework各功能模块的jar包。docs:存放帮助文档和Spring Framework的API参考。projects:按功能存放Spring Framework各模块的项目源代码,包含Eclipse项目文件和Maven项目构建配置文件。src:打包按功能存放的Spring Framework各模块的项目源代码,只含有源码,不含项目配置文件。第1章 Spring框架简介与IoC容器在创建Java项目后,如果需要使用Spring Framework,则要根据需要导入dist目录下面相关的jar包。为了方便项目的管理

    11、,可以使用Eclipse自定义库,把Spring Framework的相关文件放到用户自定义库中,当创建项目时可直接使用该库。创建自定义库的方式如图1-3所示,在Eclipse菜单中选择WindowPreferencesJavaBuild PathUser Libraries,然后点击“New”新建用户自定义库,新建完毕后,选择“Add JARs”添加上述所有的jar包,再选择“OK”,即可完成用户自定义库的创建。第1章 Spring框架简介与IoC容器完成用户自定义库的创建后,当创建Java项目时,可以在创建的配置向导中导入用户自定义库,如图1-4所示。配置好Spring开发环境后就可以使用

    12、Spring框架进行开发了。本章从Spring Framework的核心IoC容器开始介绍。第1章 Spring框架简介与IoC容器1.2IoC容器第1章 Spring框架简介与IoC容器1.2.1IoC容器和依赖倒置原则IoC(Inverse of Control,控制反转)是Spring容器的核心,其他模块都是在此基础上发展起来的。依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计领域的一种软件设计原则。依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定得多。即,以抽象为基础搭建起来的架构比以细节为基础搭建起来的架构要稳定得多

    13、。在Java中,抽象指的是接口或者抽象类,细节就是具体的实现类,使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给实现类去完成。依赖倒置原则的核心思想是面向接口编程,使用接口是实现解耦合的最重要的途径,此处用一个例子来说明面向接口编程比面向实现编程好的原因。假设现在有一台电脑需要安装打印机,但目前只有一种类型的打印机可选,即黑白打印机。首先,设计打印机类:public class GrayPrinter /初始化方法第1章 Spring框架简介与IoC容器 public void init()System.out.println(启动打印机!);/打印

    14、public void print(String txt)System.out.println(打印黑白文字:.concat(txt);此处,设计打印机类有两个方法,一个是init启动,另一个是print打印方法。其次,设计电脑类:第1章 Spring框架简介与IoC容器public class Computer GrayPrinter p;public GrayPrinter getP()return p;public void setP(GrayPrinter p)this.p=p;/打印文本 public void printTxt(String txt)第1章 Spring框架简介与I

    15、oC容器 p.init();p.print(txt);在电脑类中有一个打印机属性和一个打印方法。最后,为测试类代码:public class TestComputer /*param args */public static void main(String args)第1章 Spring框架简介与IoC容器 /TODO Auto-generated method stub /创建电脑 Computer pc1=new Computer();/创建打印机 GrayPrinter p=new GrayPrinter();pc1.setP(p);/打印文本 pc1.getP().print(打印测

    16、试页.);运行测试代码,得到需要的打印结果。第1章 Spring框架简介与IoC容器过了几年,人们发现这个世界还是彩色的比较好看,于是发明了彩色打印机,此时打印机的选择就变多了,为了实现彩色打印不得不多写一个彩色打印机类,并修改电脑类。又过了几年,人们发现激光打印机更清晰,于是,又需要修改电脑类总之,每次有新的打印机上市,就需要修改电脑类的代码。事实上这是一个典型的依赖具体实现的例子电脑类对GrayPrinter产生了依赖,一旦有新型的打印机产生(即产生新的ColorPrinter、LazerPrinter等),就需要修改电脑类代码。根据依赖倒置原则描述的,调用者应该依赖被调用者的抽象,而不是

    17、依赖于它的具体实现,此时可以抽象出一个Printer接口,其他的具体实现类都靠这个接口实现,这样修改后,无论以后怎样扩展Printer类,都不需要再修改电脑类了。修改之后的代码如下。Printer接口:public interface Printer /初始化方法 void init();/打印 void print(String txt);第1章 Spring框架简介与IoC容器GrayPrinter黑白打印机:public class GrayPrinter implements Printer /初始化方法 Override public void init()System.out.pr

    18、intln(启动打印机!);/打印 Override public void print(String txt)第1章 Spring框架简介与IoC容器 System.out.println(打印黑白文字:.concat(txt);ColorPrinter彩色打印机:public class ColorPrinter implements Printer /初始化方法 Override public void init()System.out.println(启动彩色打印机!);/打印 Override第1章 Spring框架简介与IoC容器 public void print(String

    19、txt)System.out.println(打印彩色文字:.concat(txt);电脑类:public class Computer Printer p;/打印文本 public void printTxt(String txt)第1章 Spring框架简介与IoC容器 p.init();p.print(txt);public Printer getP()return p;public void setP(Printer p)this.p=p;第1章 Spring框架简介与IoC容器此时电脑类依赖的是Printer这个抽象接口,而不是依赖于Printer的具体实现。但在测试类中又存在相似的

    20、问题,比如现在需要彩色打印机,具体代码如下:public class TestComputer /*param args */public static void main(String args)/TODO Auto-generated method stub /创建电脑 Computer pc1=new Computer();/创建打印机 Printer p=new ColorPrinter();pc1.setP(p);第1章 Spring框架简介与IoC容器 /打印文本 pc1.getP().print(打印测试页.);在上述TestComputer测试类中,使用了new ColorPr

    21、inter方式创建Printer实例,假设把所有彩色打印机换成黑白的,则要修改TestComputer测试类中的代码。为了减少修改代码的次数,可以写一个配置文件,配置具体需要实例化的类,然后在TestComputer测试类中读取配置文件,再根据配置产生不同的实例。此时TestComputer测试类的改变如下:public class TestComputer private static Properties p=new Properties();/读取Bean配置文件 static try第1章 Spring框架简介与IoC容器 p.load(TestComputer.class.getRe

    22、sourceAsStream(/bean.properties);catch(IOException e)System.out.println(无法找到配置文件!);/根据属性文件中定义的关键字创建实例 public static Object getBean(String keyName)Object o=null;try 第1章 Spring框架简介与IoC容器 o=Class.forName(p.get(keyName).toString().newInstance();catch(Exception e)System.out.println(无法实例化对象!);return o;/*p

    23、aram args */public static void main(String args)/TODO Auto-generated method stub第1章 Spring框架简介与IoC容器 /创建电脑 Computer pc1=new Computer();/创建打印机 Printer p=(Printer)TestComputer.getBean(printer);pc1.setP(p);/打印文本 pc1.getP().print(打印测试页.);可以看到,上述TestComputer测试类代码在静态块中读取了bean.properties配置文件,同时提供了一个getBean

    24、方法,该方法可以根据bean.properties的配置来实例化一个类,在给电脑装配打印机的时候,不再采用new的方式直接实例化对象,而是通过调用getBean的方式获取一个根据业务需要产生的具体实例。第1章 Spring框架简介与IoC容器bean.properties的代码如下:printer=com.ssoft.ssh.demo2.ColorPrinter#com.ssoft.ssh.demo2.GrayPrinter这里bean.properties定义了一个名叫printer的主键,值是ColorPrinter类的全名,当然,也可以根据具体的需要切换成GrayPrinter类。如此配

    25、置之后即可根据具体的业务需要产生不同的、和业务相关的Printer实例给TestComputer测试类使用,即便以后有了新类型的Printer,也不需要修改TestComputer测试类,只需要添加一个Printer的实现类,这样,可以让应用程序具有很好的扩展能力。需要注意的是,运用很多设计模式或者类设计原则的时候并不会减少代码量,相反会增加一定量的代码,但这样做的好处是增强程序的扩展能力,提高程序的维护性。在理解了上述例子之后,此时再讲Spring的IoC容器就比较容易理解了。容器是用来装东西的,Spring的IoC容器就是用来装Bean实例的,然后把这些实例通过配置的方式注入调用者中,而不

    26、是直接在代码中硬编码实例对象,所以,IoC也叫作DI依赖注入(Dependency Injection)。第1章 Spring框架简介与IoC容器1.2.2 依赖注入类型依赖注入通常分为三类,分别是接口注入(Type1型)、构造器注入(Type2型)和setter注入(Type3型),其中Type2型和Type3型是比较常用的类型,尤其Type3型是使用最多的注入方式。所谓setter注入,就是指调用者类提供一个setter方法,把被调用者作为参数传递给调用者,比如前面的电脑类代码中有一个Printer属性,我们通过setPrinter的方法把Printer对象的实例传递给它,这就是典型的se

    27、tter注入方式。构造器注入方式,表示的是调用者在实例化的时候必须注入被调用者的实例。若把上例改成构造器注入,则电脑类代码就必须改成如下方式:public class Computer Printer p;public Computer(Printer p)this.p=p;第1章 Spring框架简介与IoC容器 在创建电脑类实例的时候,必须把Printer的实例注入给Computer实例:Computer c=new Computer(new ColorPrinter();若把上例改成接口注入的方式,则电脑类必须实现一个接口,其代码如下:public interface Computeab

    28、le /定义接口注入 void inject(Printer p);public class Computer implements Computeable Printer p;第1章 Spring框架简介与IoC容器 public void inject(Printer p)this.p=p;其中,调用代码如下:Computeable pc=new Computer();pc.inject(new ColorPrinter);这种接口注入的方式需要调用者必须实现一个指定的接口,典型的应用有EJB(这种方式使用比较少,一般不推荐)。Spring IoC容器提供了Type2和Type3型的注入方

    29、式。第1章 Spring框架简介与IoC容器1.3 Spring IoC容器第1章 Spring框架简介与IoC容器1.3.1 BeanFactory容器BeanFactory采用工厂模式,提供了最基本的IoC容器功能:实例化对象、配置对象之间的依赖关系。在Spring中,所有的对象都是由BeanFactory工厂来生产管理的。BeanFactory只是一个接口类,它定义了IoC容器的一个标准,却没有给出容器的具体实现,因此还需要依靠具体的实现类。通俗地讲,BeanFactory如同生活中定义的容器,而瓶子、罐子、盒子等都是容器的具体化。由于BeanFactory只定义了最基本的IoC容器规范

    30、,所以,BeanFactory主要用在内存、CPU资源受限场合,比如Applet、手持设备等,也就是小型应用场景,企业级别的应用通常需要使用BeanFactory的子接口,比如最常用的ApplicationContext接口。1.3.2 ApplicationContext容器BeanFactory提供了最基本的功能,而ApplicationContext则提供了更多的面向企业级应用的功能,ApplicationContext是BeanFactory的子接口,所以,ApplicationContext拥有BeanFactory提供的所有功能。ApplicationContext提供了以下面向企

    31、业级应用的功能:(1)提供了文本信息解析工具,包括对国际化的支持。第1章 Spring框架简介与IoC容器(2)提供了载入文件资源的通用方法,如载入图片。(3)可以向注册为监听器的Bean发送事件。由于它提供的附加功能,基本上中大型的应用系统都会选择ApplicationContext而不是BeanFactory。只有在资源很少的情况下,才会考虑采用BeanFactory,如在移动设备上。在ApplicationContext的诸多实现中,有三个实现会经常用到:ClassPathXmlApplicationContext类路径中的XML文件载入上下文定义信息,把上下文定义文件当成类路径资源。F

    32、ileSystemXmlApplicationContext从文件系统中的XML文件载入上下文定义信息。XmlWebApplicationContext从Web系统中的XML文件载入上下文定义信息。BeanFactory与另一个重要区别是关于Bean的载入时机。BeanFactory延迟载入所有的Bean,直到getBean()方法被调用时Bean才被创建,这种方式的好处是即用即实例化,节约了内存资源,所以常用于移动设备。ApplicationContext则不同,它会在上下文启动后实例化所有的Bean,并通过预载入单实例Bean,确保需要的时候已经准备充分。第1章 Spring框架简介与Io

    33、C容器1.3.3 使用Spring IoC容器使用Spring的IoC容器来管理Bean通常需要以下几步:创建Bean的实现类。使用XML文件配置元数据,把Bean配置到XML文件中,让Spring进行管理。实例化容器,获得BeanFactory的实例。通过BeanFactory获取Spring IoC容器管理的实例。Spring 提供了强大的IoC容器来管理组成应用程序的Bean。要利用容器提供的服务,就必须创建需要的Bean类,并且配置Bean,让这些Bean能够被Spring IoC容器管理。在Spring IoC容器里可以通过XML文件、属性文件甚至API来配置Bean。因为基于XML

    34、的配置既简单又成熟,所以本书只基于XML进行配置。如果对其他配置方法感兴趣,可以自行查阅Spring的相关文档,那里有更多关于Bean配置的信息。Spring允许使用一个或多个Bean配置文件来配置Bean。对于简单的应用程序而言,可以将所有Bean集中配第1章 Spring框架简介与IoC容器置于一个文件中。但是,对于大型的、拥有很多Bean的应用程序而言,则应该根据Bean的不同功能将它们分别配置到多个文件里。接下来采用Spring IoC容器管理的方式来完成前面介绍的打印机例子。1.创建Bean类创建所需要的Bean类,创建一个抽象类Printer。和前例的不同在于增加了属性,其中typ

    35、e表示打印机类型,manu表示生产厂商,代码如下:public abstract class Printer /类型 String type;/厂商 String manu;第1章 Spring框架简介与IoC容器 /初始化方法 public abstract void init();/打印 public abstract void print(String txt);public String getType()return type;public void setType(String type)第1章 Spring框架简介与IoC容器 this.type=type;public Stri

    36、ng getManu()return manu;public void setManu(String manu)this.manu=manu;第1章 Spring框架简介与IoC容器再创建电脑类和Printer的子类,这两个类和前面例子中所创建的一样。2.使用XML文件配置Bean使用XML文件配置元数据,让Spring能够管理Bean的实例和依赖关系。要通过XML在Spring IoC容器里声明Bean,首先需要创建XML Bean配置文件。我们计划在项目的源代码src目录中创建一个名叫beans.xml的配置文件,然后写出一个基于XML配置的基本结构。第1章 Spring框架简介与IoC容

    37、器在使用基于XML的方式配置元数据的时候,XML有一个根元素就是beans,我们需要在元素中添加一个或者多个元素。元素的配置根据需要和应用程序中实际使用的对象一一对应。如果要在应用程序中使用ColorPrinter的实例,那么可以采用如下配置:同理,如果需要配置Computer的实例,则配置如下:除了配置Bean的属性外,还可以根据需要通过配置Bean的子标签来配置多个Bean之间的关系,以达到注入的目的。其中,Type3型的注入方式通过子标签实现,Type2型的注入方式通过子标签实现。首先介绍标签的用法。第1章 Spring框架简介与IoC容器1)property是最常用的子标签,它可以给B

    38、ean设置属性。其中,name表示Bean的属性名称。通常属性的值可以用以下方式赋予:直接使用value。使用value子元素。使用ref子元素指向另一个Bean,指向的Bean必须在配置文件中存在。需要注意的是该Bean的属性必须提供set/get方法。假设有一个电脑类的表示如下:public class Computer /生产厂商 String manu;/型号第1章 Spring框架简介与IoC容器 String type;public String getType()return type;public void setType(String type)this.type=type;

    39、public String getManu()return manu;第1章 Spring框架简介与IoC容器 public void setManu(String manu)this.manu=manu;/打印机 Printer p;/打印文本 public void printTxt(String txt)p.init();p.print(txt);第1章 Spring框架简介与IoC容器 public Printer getP()return p;public void setP(Printer p)this.p=p;则可以通过上面的三种方式来配置一个电脑类的实例:第1章 Spring框

    40、架简介与IoC容器 苹果 此外,property还可以包含集合元素,并通过、等配置与Java集合中的list、set、map对应,比如:第1章 Spring框架简介与IoC容器 China American England China American England第1章 Spring框架简介与IoC容器 当为简单类型的属性赋值时,Spring支持使用快捷方式。可以在元素里使用value属性,以此取代在元素里内附一个元素。第1章 Spring框架简介与IoC容器比如,如下配置:为了方便定义属性,可以采取另一种便利的快捷方式。这种方式通过使用p Schema来定义Bean属性,其中p是元素的属

    41、性。这种方式可以减少XML配置的代码行数。第1章 Spring框架简介与IoC容器2)在Bean中嵌入多个子元素,通过名称可以看出,这些子元素是给Bean的构造函数注入值,即Type2类型的注入方式,这种注入有以下3种方式:用type指定类型,value指定值。用ref属性引用另一个已经配置好的Bean。用ref子标签引用另一个已经配置好的Bean。具体见下例:第1章 Spring框架简介与IoC容器 在定义User类的时候,构造函数需要有两个参数,其中User类的定义如下:public class User String name;String sex;int age;第1章 Spring框

    42、架简介与IoC容器/联系信息 ContactInfo cInfo;public User(String name,ContactInfo cInfo)this.name=name;this.cInfo=cInfo;用户的联系信息类ContactInfo的定义如下:public class ContactInfo String mobile;第1章 Spring框架简介与IoC容器 String address;String qq;public String getMobile()return mobile;public void setMobile(String mobile)this.mob

    43、ile=mobile;第1章 Spring框架简介与IoC容器 public String getAddress()return address;public void setAddress(String address)this.address=address;public String getQq()return qq;第1章 Spring框架简介与IoC容器 public void setQq(String qq)this.qq=qq;3.使用多模块配置当项目规模比较小的时候,只需要配置一个文件,但通常情况下,应用Spring的项目规模都比较大,为了便于项目的管理和人员的分工协作,通常要

    44、把Spring的配置文件按模块进行划分,一般一个模块需要一个配置文件,然后由一个总的配置文件把这些文件包含进来。假设一个人力资源管理系统可能包含部门员工管理系统、招聘系统、工资系统、考勤系统、培训系统等5个第1章 Spring框架简介与IoC容器模块,那么就可以分5个模块,并分别写5个模块的Spring配置文件,比如spring_employee.xml、spring_salary.xml、spring_job.xml、spring_checkin.xml、spring_train.xml,最后把这5个配置文件通过标记导入到一个名叫spring_hr.xml的配置文件中。spring_hr.x

    45、ml的配置如下:第1章 Spring框架简介与IoC容器 这只是多文件配置方式中的一种,在做Web开发和其他框架集成的时候,还会介绍其他多文件配置的方式。4.实例化Spring容器使用配置文件定义好了容器管理的Bean之后,第三步就是在程序当中获取BeanFactory的实例,然后通过BeanFactory产生所需要的Bean的实例。获取BeanFactory的实例的方式有多种,其中最常见的方式如下:方式一:实例化BeanFactory。要实例化BeanFactory,首先必须将Bean配置文件加载到Resource对象中。例如,下面的语句就对位于classpath根目录下的配置文件进行了加载

    46、。Resource resource=new ClassPathResource(beans.xml);Resource仅仅是一个接口,ClassPathResource是它的一个实现,ClassPathResource用于从Classpath加载资源。第1章 Spring框架简介与IoC容器其他Resource接口的实现,如FileSystemResource、InputStreamResource和UrlResource用于从其他位置加载资源。图1-5显示了在Spring里Resource接口的一般实现。接下来,使用上面加载配置文件生成的Resource对象,实例化BeanFactory。

    47、BeanFactory factory=new XmlBeanFactory(resource);BeanFactory仅仅是一个接口,它对BeanFactory的操作进行了抽象,XmlBeanFactory则是对它的具体实现,第1章 Spring框架简介与IoC容器用于从XML配置文件构建BeanFactory,在Spring3.X版本中已经建议不采用XmlBeanFactory的方式获取BeanFactory,所以最好还是采用第二种方式。方式二:实例化ApplicationContext。和BeanFactory类似,ApplicationContext也只是一个接口,要使用Applica

    48、tionContext,首先必须实例化它的实现类。ClassPathXmlApplicationContext是ApplicationContext的实现,从classpath加载XML配置文件,然后构建Application Context。也可以为其指定多个配置文件。加载单个文件:ApplicationContext=new ClassPathXmlApplicationContext(beans.xml);加载多个文件:ApplicationContext=new ClassPathXmlApplicationContext(new Stringbeans.xml,beans1.xml)

    49、;除了ClassPathXmlApplicationContext,Spring还提供了一些其他的ApplicationContext实现。第1章 Spring框架简介与IoC容器FileSystemXmlApplicationContext用于从文件系统加载XML配置文件,XmlWebApplicationContext只能用于Web应用程序,XmlPortletApplicationContext只能用于门户应用程序。图1-6显示了Spring里ApplicationContext接口的一般实现。获取BeanFactory后,就可以通过工厂获取Bean的实例。第1章 Spring框架简介与

    50、IoC容器5.获取Bean的实例要从Bean Factory或Application Context里获取所声明的Bean,需要调用getBean()方法,给这个方法传入唯一的Bean名称。因为该方法返回的对象类型是java.lang.Object,所以需要在使用返回对象之前将其他强制转换为各自真正的类型,具体代码如下:public class SpringTest /*param args */public static void main(String args)/获取BeanFactory实例 ApplicationContext context=new ClassPathXmlAppl

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《基于新信息技术的Java-EE应用开发实训》课件第一章.pptx
    链接地址:https://www.163wenku.com/p-7669686.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库