收藏 分享(赏)

javaweb开发技术详解第12章(课件).ppt

上传人:无敌 文档编号:974514 上传时间:2018-05-11 格式:PPT 页数:33 大小:150.01KB
下载 相关 举报
javaweb开发技术详解第12章(课件).ppt_第1页
第1页 / 共33页
javaweb开发技术详解第12章(课件).ppt_第2页
第2页 / 共33页
javaweb开发技术详解第12章(课件).ppt_第3页
第3页 / 共33页
javaweb开发技术详解第12章(课件).ppt_第4页
第4页 / 共33页
javaweb开发技术详解第12章(课件).ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、第12章 Spring,Spring是目前最流行的Java框架之一,在目前的Java Web卡发中,无疑是Spring占据了统治地位,Spring框架以其强大的功能和卓越的性能受到的众多开发人员的喜爱,他所具有的整合功能,使得它能很好地和其他框架进行结合使用,从而为Java开发人员进行企业级的应用开发提供了一个一站式的解决方案。本章首先介绍Spring的整体框架,然后建立一个Spring的开发环境,并通过入门的示例来对Spring进行简单的极少。最后讲解Spring在十五处理与其他框架整合方面的一些特性。,12.1 Spring概述,Spring是由Rod Jonhnson创建,其产生的目的是

2、为了简化企业级的开发,Spring的最初思想体现在Rod Johnson编写的一本中文名为Expert One-on-One J2EE设计与开发的书籍,这是他在多年Java开发中的实践总结。,12.1.1 Spring简介,Spring提供了一个继承的框架,可以通过它解决常见的Java EE问题,其核心是依赖于饭转控制器。Spring的整个框架建立在Core的基础之上,它拥有自己的DAO层,并且可以整合其他的开源ORM,它还提供了一个独特的数据访问抽象,可以很方便地和Hibernate、JPA等框架进行整合。使用Spring可以选择使用变成十五或者声明式十五处理,而且Spring还提供了一个强

3、大的MVC框架。,12.1.2 Spring的主要特性,在Spring中,核心部分的封装包是框架的最基础部分,并且提供了反转控制的功能。它所使用的是工厂模式,所以消除了单利模式的额弊端,并且封装包增加了对国际化的支持。DAO提供了JDBC的抽象层,非常方便开发人员的使用。Spring主要由以下特性。(1)是一个非入侵框架,可以使程序代码对框架的依赖降低到最小。在配置JavaBean时不需要引用SpringAPI,可以对旧系统中没有使用的Spring的Java类进行配置。(2)提供一种在任何环境下都可以使用的、一致的变成模型,Spring应用程序不仅可以运行在Java EE和Web容器中,也可以

4、在其他的环境下进行运行,Spring中还提供了一种用来隔离应用程序代码和运行环境的编程模型。(3)在Spring中提高了代码的重用性,并尽可能的避免在程序中硬编码,Spring可以将应用程序中的某些代码抽象出来,然后使用这些代码在其他的程序中使用。,12.2 在应用程序中使用Spring,应用程序中使用Spring非常简单,需要在环境变量中指定Spring框架的jar包,如果使用Spring框架,需要进行一些配置,这样就会产生很大的工作量,MyEclipse是基于Eclipse的开发Java EE的应用的IDE,MyEclipse可以很好的支持Spring的开发。,12.2.1 Spring的

5、下载与安装,通过http:/www.springsource.org/可以进入Spring的首页。在Spring的首页,读者可以了解到有关Spring的所有信息,包括培训课程、最新进展等。单击首页的“Downloads”连接,即可进入Spring的下载画面。在下载前,需要进行下载人员的信息注册,填写完信息后单击“Access Download”按钮完成注册,进入下载页面。,12.2.2 MyEclipse对Spring的支持,在MyEclipse5.5中已经支持了Spring2,使用步骤如下:(1)创建项目Spring,右击项目名,选择“MyEclipse”|“Add Spring Capab

6、ilities”菜单项。(2)在弹出的“Add Spring Capabilities”对话框中选择Spring 2。单击“Next”按钮,进入下一个配置对话框。(3)设置Spring的配置文件名和保存目录。在默认情况下,Spring的配置文件名为applicationContext.xml,保存目录是src。一般并不需要修改这一页的设置。(4)单击“Finish”按钮,完成Spring的添加。可以看到项目“Spring”Src目录下新建了一个applicationContext.xml文件以及Spring所使用到的jar包。,12.3 Spring第一个HelloWorld示例,介绍了前面的

7、配置,下面先看一个在JSP页面中输出“HelloWorld”的Spring示例,大体了解一下Spring的开始流程。,12.3.1 编写页面HelloWorld.jsp,HelloWorld.jsp的功能是输出消息,编写它的具体方法如下。(1)首先通过Eclipse建立该页面,右击在Spring项目“WebRoot”文件夹,选择“New”|“File”菜单项,单击“File”,将弹出“New File”对话框。 (2)在“New File”对话框中的“File Name”文本框中输入“HelloWorld.jsp”,然后单击“Finish”按钮,即可建立HelloWorld.jsp文件。(3)

8、双击HelloWorld.jsp文件,打开该文件即可进行编辑。,12.3.2 编写控制器HelloWorld.java,在Spring里,所有的控制器都继承了Controller类。在.spring.action包里新建一个类HelloWorld的方法如下。(1)右击包.slpring.action,选择“New”|“Class”菜单项,单击“Class”,将弹出“New Java Class”对话框。 (2)在“New Java Class”对话框中的“Name”文本框中输入“HelloWorld”,然后单击“Finish”按钮,即可建立HelloWorld.java文件。(3)双击Hell

9、oWorld. java文件。,12.3.3 配置config.xml,建立Spring的配置文档config.xml,该文件放在Spring/WEB-INF目录下。,10.3.4 配置web.xml,建立web.xml,该文件放在mySpring/WEB-INF目录下。,10.3.5 测试运行该示例,启动Tomcat,在浏览器的地址栏中输入http:/localhost:8088/Spring/helloWorld.do,即可看到在浏览器中输出“HelloWorld”。,12.4 反向控制(Ioc),Spring框架的核心模式就是Ioc,将Ioc使用到项目中可以使得代码变的更加一度而且维护起

10、来更加容易。传统创建对象时,一般是在对象工厂中通过new来建立相应的对象实例,但是这种创建对象和对象工厂的耦合度过高,使用反响控制模式就是最直接降低耦合度的方法。,12.4.1 依赖注入,使用Ioc创建对象的任务不会由调用者来完成,而是通过外部的协调者来完成,所以可以认为调用者依赖Spring Ioc容器来获取到对象的实例,所以也可以将Ioc称为依赖注入。,12.4.2 用Ioc降低耦合度,在Ioc模式中使用接口解耦合是一个行之有效的解决耦合度过高的方案,也就是说在类的外部创建对象可以使用new类来创建或是通过Spring Ioc容器创建对象。,12.5 手动装配Java Bean,装配Bea

11、n就是在XML中配置JavaBean的相关信息,然后由Spring框架对配置文件进行读取,并且创建相应的JavaBean对象实例的过程。手动装配JavaBean需要制定Spring所装配的JavaBean时的动作,例如所调用的构造方法等。,12.5.1 装配Bean的方法,Spring中有两种方式装配Bean,一种是Bean工厂(BeanFactory),一种是应用上下文(ApplicationContext),在Bean工厂方法中,使用org.springframework.beans.factory.BeanFactory接口来获得Bean对象实例,不过常用的是org.springfram

12、ework.beans.factory.xml.XmlBeanFactory,能够从XML配置文件中读取Bean的装配信息,并在Spring容器中建立相应的JavaBean对象实例,并且返回JavaBean实例。,在Spring中有两种ApplicationContext的实现能够经常用到:FileSystemXmlApplicationContextClassPathXmlApplicationContext单从装配Bean上看,ApplicationContext和BeanFactory类似。但AppliicationContext要比BeanFactory提供了更多的功能,如国际化,装载

13、文件资源、向监听器Bean发送事件等。因此,如果要使用更多的功能,最好使用ApplicationContext来装配Bean。,12.5.2 与Bean相关的接口,如果被装配的Bean实现了相应的接口,就可以在Bean中获得相应的信息,或者进行某些操作。这些接口如下(这些接口都在org.springframework.beans.factory包中):BeanNameAwareBeanClassLoaderAwareBeanFactoryAwareInitializingBeanDisposableBean,Spring会按着如下的步骤来装载一个Bean。实例化Bean。设置Bean的属性(也

14、就是调用Java Bean对象的setter方法)。如果Bean实现了BeanNameAware 接口,调用setBeanName方法。如果Bean实现了BeanClassLoaderAware接口,调用setBeanClassLoader方法。如果Bean实现了BeanFactoryAware接口,调用setBeanFactory方法。如果Bean实现了ApplicationContext接口,并且使用了applicationContext装载Bean,则调用setApplicationContext方法。如果Bean实现了InitializingBean接口,调用afterProperti

15、esSet方法。如果Bean被销毁,并且实现了DisposableBean接口,调用destroy方法。,12.5.3 标签的常用属性,每一个Java Bean需要一个标签进行配置。这个标签有如下常用的属性:1id和class属性2name属性3scope属性4init-method和destroy-method属性,12.5.4 装配普通属性,Spring允许在装配Bean的过程中装配Bean的属性,可以使用可以使用和标签即可完成装配工作。Spring会通过反射技术来确定属性的类型,所以一般不需要指定属性的类型,如果需要的话,可以使用标签的type属性来指定属性的具体类型。,装配hello属

16、性有如下两种方法:使用标签使用标签,12.5.5 装配集合属性,在Spring中可以装配四种集合类型属性:List、Set、Map和Properties。与这四种集合类型相对应的标签是、和。CollectionBean是一个包含上述四种集合类型的Java Bean。 1装配java.util.List类型的属性2装配java.util.Set类型的属性3装配java.util.Map类型的属性4装配java.util.Properties类型的属性,12.5.6 装配构造方法,一个Java Bean的构造方法的参数有一个或多个,这时就需要使用到标签来为这些构造方法设置相应的参数值。Spring

17、会自动寻找ConstructorBean类中只有一个参数的构造方法,正好ConstructorBean类中也只有一个构造方法有一个参数,因此,Spring容器只能使用这个构造方法来创建ConstructorBeanod 的对象实例。,12.6 自动装配,在Bean中一般有需要属性需要装配,而这些属性如果全部配置在XML文件中不免有些麻烦,因此,Spring允许使用autowirte属性来自动对这些属性进行装配,该属性有四个值,分别如下:byNamebyTypeconstrctorautodetect,12.7 Spring中的数据库操作,Spring中对目前比较流行的数据库技术都进行了封装,例

18、如当前流行的Hibernate,还有JDBC、JDO等,这些数据库的技术在Spring中封装的就是模板(Template),例如封装Hibernate的是HibernateTemplate,这些模板在使用方法上比较相似。,12.7.1 获取DataSource对象,在Spring框架操作数据库时,需要创建一个DataSource对象,并且在Spring框架中存在三种获取DataSource对象的方法,分别是:(1)从第三方的连接池获得DataSource(2)使用DriverMangerDataSource获得DataSource(3)从JNDI获得DataSource,12.7.2 在Spr

19、ing中使用Hibernate,Spring和目前很多ORM流行框架进行集成,因而减小了代码量,并且使得程序更加容易维护,这些ORM框架爱主要包括有Hibernate和JDO等,Spring和Hibernate之间通过HibernateTempale来集成,和其他ORM框架之间也主要使用Template类。,1集成Spring和Hibernate,在前面学习过Hibernate技术,在编写一个Hibernate的程序,其步骤是:(1)需要一个用于映射实体Bean的hbm.xml文件,(2)需要一个Hibernate的配置文件,里面需要配置一些Hibernate中需要的属性设置,和hbm.xml

20、的具体位置。(3)创建一个Configuration对象来对配置文件中的内容进行读取。(4)创建一个工厂SessionFactory对象来获取Session对象。,2使用HibernateTemplate,在HibernateTemplate类中有个load方法,该方法的功能和org.hibernate.Session接口的load方法功能相同, Spring会根据hbm.xml文件中的配置来决定在装载数据时应该采用lazy或者是非lazy的方式,所以会抛出一个org.hibernate.LazyInitializationException异常。Hibernate3在默认的情况下采用lazy

21、的方式装载数据,因此,当Spring将MyMessage类的id属性值装载完后,name属性并未马上装载,直接调用了name属性。而在装载id属性后,Spring就将Session对象关闭了,因此,在装载name属性时,由于Session对象已经关闭,所以就会抛出LazyInitializationException异常。,12.7.3 在Spring中使用JDBC,现在有很多类似于Hibernate、JDO操作数据库的ORM框架,但是有时候还会使用到JDBC来对数据库进行操作,使用JDBC进行数据库操作比较简单,缺点就是会产生很多的代码冗余,为了使代码的冗余量尽可能的减少,Spring对JDBC进行了进一步的封装。1装配JdbcTemplate类2向数据库中写数据,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报