《基于新信息技术的Java-EE应用开发实训》课件第一章.pptx
- 【下载声明】
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实例的,然后把这些实例通过配置的方式注入调用者中,而不
展开阅读全文