Spring Framework(一) 快速入门.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
面向侧面的程序设计 方林博士 本文下载地址:
第16章 代理模式 Website:
Java程序设计教程 第一讲 Java概述.
基于SSH的web开发 AND 企业级WEB应用开发新技术
四資二甲 第三週作業 物件導向程式設計.
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
第一页是课程的标题 Spring入门示例.
J2EE Struts 和Spring 的区别.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
Oracle数据库 Oracle 子程序.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
SVN的基本概念 柳峰
AngularJS -- 使用AngularJS进行开发
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
欢乐玩转单元测试之JUnit 讲师:FREE QQ:
SVN服务器的搭建(Windows) 柳峰
辅导课程六.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Spring依赖注入及AOP简介.
Visual Studio Team System 简介
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
PaPaPa项目架构 By:Listen 我在这.
C/C++/Java 哪些值不是头等程序对象
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
SDA(Standard development architecture)框架介绍
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
第十二章 学习使用Ant Apache Ant是一个基于Java的构建工具,它可以 会构建多种项目,但是目前主要被用于Java项目 的构建, Ant是用Java语言编写,可以在多个操 作系统中运行,目前在绝大部分的Java开源项目 中,都选择使用Ant作为构建项目的工具,Ant已 经成为Java开源项目构建的事实标准,而且越来.
Aspect Oriented Programming
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
Chapter 18 使用GRASP的对象设计示例.
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
Delphi 7.0开发示例.
WEB321 使用ASP.NET2.0快速开发电子商务网站
OpenStack vs CloudStack
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
基于列存储的RDF数据管理 朱敏
JAVA 程式設計與資料結構 第三章 物件的設計.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Presentation transcript:

Spring Framework(一) 快速入门

周甫(zoofchow@hotmail.com) 课程介绍 本课程主要讲授Spring 1.x基础知识 适用于Java开发工程师 面向的学员是对Servlet,JSP有基本了解的J2EE开发工程师 全部课程时间大约是120分钟 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 概 要 Spring Framework概览 Spring开发快速入门 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1 什么是Spring? Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.1 Spring的特点 Spring具有以下特点: 轻量级 Spring 的核心文件只有不到 1MB 的大小,而使用 Spring 核心所需要的资源也是 很小的,而 Spring 是个非侵入性框架,它的目的之一,是让应用程序不感受到框 架的存在,减低应用程序从框架移植时的负担。 容器 Spring 核心本身是个容器,管理对象的生命周期、对象的组态、相依注入等,并可以控制对象的创建方式。 IoC Spring 的核心概念是IoC,更具体而易懂的名词是依赖注入(Dependency Injection),使用 Spring,程序员不必自己在程序代码中维护对象的依赖关系,只需在配置文件中加以设定,Spring 核心容器会自动根据设定将依赖注入指定的对象。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.2 Spring的历史 Spring Framework实际上是Rod Johnson所著的《Expert One-on-One J2EE Designand Development》一书中所阐述的设计思想的具体实现。在One-on-One这本书中Rod Johnson倡导J2EE实用主义的设计思想,并随书提供了一个初步的开发框架实现。Rod Johnson在开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.3 Spring的使命 J2EE应该更加容易使用。 面向对象的设计比任何实现技术(比如J2EE)都重要。 面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。 代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。 JavaBean提供了应用程序配置的最好方法。 在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.4 Spring受到的批判 Spring不是一个“标准”. Spring不是J2EE规范的一部分,没有通过JCP(Java Community Process)的审核认可。 批判来源于EJB的支持者,他们认为EJB是一个标准,是J2EE规范的一部分。当然,标准最主要的目的是希望在应用服务器之间是可移植的,可是EJB的移植却并不轻松,不同应用服务器的ejb部署描述文件总是有着差异。而且EJB开发的类完全依赖于EJB容器。而Spring对其管理的Bean没有任何形式的侵入,这样的Bean是普通Java对象(POJO),那么它就遵循Java标准,可以到处移植。 Spring是“超重量级”的. Spring涉及的内容确实很多(例如:提供了对jdbc、ORM、远程访问等等的支持),但其本质还是Java技术的庞大。Spring只是为了这些技术提供更好的使用方案而已。当然,开发者可以只选取需要使用的部分. 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5 Spring 体系 Spring框架由七个定义明确的模块组成: 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.1 体系介绍 如果作为一个整体,Spring 7个模块为开发者提供了开发企业应用所需的一切。但开发者不必将应用完全基于Spring框架。开发者可以自由地挑选适合的模块而忽略其余的模块。 如图所示,所有的Spring模块都是在核心容器之上构建的。容器定义了Bean是如何创建、配置和管理的——更多的Spring细节。当开发者配置应用时,会潜在地使用这些类。但是作为一名开发者,最可能对影响容器所提供的服务的其它模块感兴趣。这些模块将会为开发者提供用于构建应用服务的框架,例如AOP和持久性。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.2 核心容器 这是Spring框架最基础的部分,它提供了依赖注入(Dependency Injection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.3 应用上下文(Context)模块 核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。 另外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.4 Spring的AOP模块 Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性, Spring的AOP支持基于AOP联盟定义的API。AOP联盟是一个开源项目,它的目标是通过定义一组共同的接口和组件来促进AOP的使用以及不同的AOP实现之间的互用性。通过访问他们的站点http://aopalliance.sourceforge.net,可以找到关于AOP联盟的更多内容。 Spring的AOP模块也将元数据编程引入了Spring。使用Spring的元数据支持,可以为源代码增加注释,指示Spring在何处以及如何应用切面函数。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.5 JDBC抽象和DAO模块 使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此可以保持数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。 这个模块还在几种数据库服务器给出的错误消息之上建立了一个有意义的异常层。使开发者不用再试图破译神秘的私有的SQL错误消息! 另外,这个模块还使用了Spring的AOP模块为Spring应用中的对象提供了事务管理服务。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.6 对象/关系映射集成模块 对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的人,Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一个也包括JDBC。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.7 Spring的Web模块 Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。例如:实现文件上传的multipart请求,它也提供了Spring和其它Web框架的集成,比如Struts、WebWork。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.8 Spring的MVC框架 Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。 它允许声明性地将请求参数绑定到业务对象中,此外,Spring的MVC框架还可以利用Spring的任何其它服务,例如国际化信息与验证。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.9 Spring 层次 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 1.5.10 总结 Spring带来了复杂的J2EE开发的春天。它的核心是轻量级的IoC容器,它的目标是为J2EE应用提供了全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其它的框架方案加以代替,Spring希望为企业应用提供一站式(one-stop shop)的解决方案。 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 2 快速入门 例子描述: 用一个类实现一个接口,完成输出“HELLO 某某”的功能 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 2.1 配置Spring 请在Eclipse新建一个j2se project 使用MyEclipse导入Spring 1.2 core lib. 配置好得项目看起来 如右图 : 其中: com.demo.impl 放置spring bean class com.demo.test 测试类 applicationContext.xml spring bean 配置文件 周甫(zoofchow@hotmail.com)

2.2 Spring Bean: HelloBean public class HelloBean { private String helloWorld; public String getHelloWorld() return helloWorld; } public void setHelloWorld(String helloWorld) this.helloWorld = helloWorld; 周甫(zoofchow@hotmail.com)

2.3 applicationContext.xml <beans> <bean id="hellobean" class="com.demo.impl.HelloBean"> <property name="helloWorld"> <value>你好</value> </property> </bean> </beans> 周甫(zoofchow@hotmail.com)

2.4 测试:ApplicationContext public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); HelloBean hello = (HelloBean)ac.getBean("hellobean"); System.out.println(hello.getHelloWorld()); } 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 2.4 测试:BeanFactory public static void main(String[] args) { Resource rs = new ClassPathResource("applicationContext.xml"); BeanFactory factory = new XmlBeanFactory(rs); HelloBean hello2 = (HelloBean)factory.getBean("hellobean"); System.out.println(hello2.getHelloWorld()); } 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 优势 所有程序代码中,除了测试类之外,并没有出现Spring中的任何组件 HelloBean的helloWorld属性由Spring通过读取配置文件(applicationContext.xml)动态设置 如果HelloBean改用接口来编程,那么实现类的具体名称都不需要. 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 对开发的帮助 组件并不需要实现框架指定的接口,因此可以轻松的将组件从Spring中脱离 组件间的依赖关系减少,极大改善了代码的可重用性 周甫(zoofchow@hotmail.com)

BeanFactory与ApplicationContext BeanFactory负责读取spring bean配置文件,管理对象的载入、生成、对象之间的关系维护,负责 bean的生命周期. 对于简单的应用程序来说,Beanfactory已经足够. 但如果要用到Spring在框架中的一些功能及高级特性,则使用ApplicationContext,BeanFactory主要用于一些受限设备 ,如移动设备等. 周甫(zoofchow@hotmail.com)

周甫(zoofchow@hotmail.com) 配置文件读取方式 Rod Johnson建议使用ApplicationContext. 读取配置文件的方式有常用的三种: FileSystemXmlApplicationContext 配置文件必须位于项目根目录中,示例中如:e:\workspace\spring-demo-j2se下,与src平级. ClassPathXmlApplicationContext 配置文件在classpath中,也就是在src下 XmlWebApplicationContext 在Web应用程序的文档结构中读取 周甫(zoofchow@hotmail.com)