`

Spring3开发实战 之 第一章:Spring入门

 
阅读更多



认识Spring

Spring是什么

Spring是一种轻量级的、非侵入式的Java/JavaEE应用框架    

Spring背景

Rod Johnson

《Expert One-on-One J2EE Design and Development》(2002)这本书的中文译本为《J2EE 设计开发编程指南》(2003)
半年后,一个新的Java Framework发布,同样出自Rod Johnson 的手笔,这自然引起了大家极大的兴趣,这就是SpringFramework。SpringFramework 实际上是《Expert One-on-One J2EE Design and Development》 一书中所阐述的设计思想的具体实现。
 
 《Expert One-on-One J2EE Development without EJB》 (2004)
nSpring目标
让J2EE开发变的简单、易用     (框架的好处)
业务应用“不”依靠 Spring API (非侵入性)
集成已存在的成熟应用解决方案 (如Hibernate,不重复发明轮子)
利用面向对象的优秀技术       (面向接口而非实现编程,组合优于继承)
促进好的编程习惯             (测试驱动开发,测试简单,面向接口编程)
让测试业务应用变得简单、快速 (无侵入性,测试容易)

Spring优点

有效地组织你的中间层对象
消除各式各样的配置文件
将面对接口编程做到实处
自由、不依赖框架
将单元测试变的简单
统一的数据存储方式
只选择你需要的

Spring能干什么

Spring能干什么

笼统说:Spring能作为一个超级的”粘合”平台,把很多的技术有效整合到一
起,形成一个整体,以更好的解决问题,并使系统结构更优良、性能更出众。
(体现体系结构设计的:组件式、装配式、插拔式、复用性、无侵入式等)
具体点说,Spring能干的事情很多,最基本的有以下几条:
1:IoC/DI
2:AOP
3:对JDBC和ORM的支持
4:服务(典型如:事务)
5:各种技术的整合(典型如:Struts2+Spring3+Hibernate3整合,还有很多其他的技术整合,如EJB、JMS等)
6:Web应用框架(SpringMVC)
7:更多技术,如:Spring的Security、Spring的Web Flow、Spring的WebService等等
 

Spring有什么



上图是Spring框架2.5版时官方给出的概述图

Core包

Core封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

DAO包

DAO提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。还提供了一种比编程性更好的声明性 事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。

ORM包

ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性 事务管理。

AOP包

Spring的 AOP 封装包提供了符合 AOP 联盟规范的面向方面的编程实现,让你可以定义如方法拦截器和切入点,从逻辑上讲,可以减弱代码的功能耦合,清晰的被分离开。而且,利用源码级的元数据功能,还可以将各种行为信息合并到你的代码中 。

Web包

Spring中的Web包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。这个包使Spring可与其他框架结合。

MVC包

Spring中的 MVC 封装包提供了Web应用的MVC实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。

Spring3总共包含了大约20个模块,这些模块又被组织成为:

核心容器部分、数据访问/集成部分、Web部分、AOP部分和测试支持几个部分。

核心容器部分(Core Container)又包含如下部分

1:Core和Beans模块提供了Spring最基础的功能,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
2:Context模块基于Core和Beans来构建,它提供了用一种框架风格的方式来访问对象,有些像JNDI注册表。Context封装包继承了beans包的功能,还增加了国际化(I18N),事件传播,资源装载,以及透明创建上下文,例如通过servlet容器,以及对大量JavaEE特性的支持,如EJB、JMX。核心接口是ApplicationContext。
3:Expression Language,表达式语言模块,提供了在运行期间查询和操作对象图的强大能力。支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring 容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。

数据访问/集成部分(Data Access/Integration)又包含如下部分

1:JDBC模块,提供对JDBC的抽象,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。
2:ORM模块,提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如简单声明性 事务管理 。
3:OXM模块,提供一个支持Object和XML进行映射的抽象层,其中包括JAXB、Castor、XMLBeans、JiBX和XStream。
4:JMS模块,提供一套“消息生产者、消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
5:Transaction模块,支持程序通过简单声明性 事务管理,只要是Spring管理对象都能得到Spring管理事务的好处,即使是POJO,也可以为他们提供事务。

Web部分又包含如下部分

1:Web模块,提供了基础的web功能。例如多文件上传、集成IoC容器、远程过程访问、以及Web Service支持,并提供一个RestTemplate类来提供方便的Restful services访问
2:Web-Servlet模块,提供了Web应用的Model-View-Controller(MVC)实现。Spring MVC框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与Spring其他技术协作。
3:Web-Struts模块, 提供了对Struts集成的支持,这个功能在Spring3.0里面已经不推荐了,建议你迁移应用到使用Struts2.0或Spring的MVC。
4:Web-Portlet模块,提供了在Portlet环境下的MVC实现
 

AOP部分又包含如下部分

1:AOP模块,提供了符合AOP 联盟规范的面向方面的编程实现,让你可以定义如方法拦截器和切入点,从逻辑上讲,可以减弱代码的功能耦合,清晰的被分离开。而且,利用源码级的元数据功能,还可以将各种行为信息合并到你的代码中 。
2:Aspects模块,提供了对AspectJ的集成。
3:Instrumentation模块, 提供一些类级的工具支持和ClassLoader级的实现,可以在一些特定的应用服务器中使用
 

Test部分又包含如下部分

1:Test模块,提供对使用JUnit和TestNG来测试Spring组件的支持,它提供一致的ApplicationContexts并缓存这些上下文,它还能提供一些mock对象,使得你可以独立的测试代码。
 
 
视频配套PPT,视频地址【 Spring3开发实战-独家视频课程
 原创内容 转自请注明【 http://sishuok.com/forum/blogPost/list/2826.html#7825
9
1
分享到:
评论

相关推荐

    Java EE 框架整合开发⼊⻔到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf

    这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...

    spring3.0mvc自学教程ppt+注解教程+注解实例+springmybatis教程+项目实例+中文api (老师的心血)从入门到项目实战

    Spring 3.0 MVC 是一个强大的Java框架,用于构建企业级Web应用程序。它以其模块化、松耦合和高度可配置性而闻名。本自学教程集合了多种资源,旨在帮助初学者逐步掌握Spring 3.0 MVC的核心概念,并通过实际项目实例...

    JavaEE开发的颠覆者+Spring+Boot实战前三章源码

    本资源包含了基于Spring Boot实战书籍前三章的源码,这些章节通常会涵盖Spring Boot的基础概念和入门实践。 首先,Spring Boot的基础知识主要包括以下几个方面: 1. **起步依赖(Starter Dependencies)**:Spring...

    Spring实战第一章无错源码

    在"Spring实战第一章无错源码"中,我们可以预见到的内容将涵盖Spring的基本概念、核心特性以及如何快速入门。 1. **Spring概述**:Spring框架由Rod Johnson创建,旨在简化企业级Java应用的开发。它通过依赖注入...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    spring入门经典源码第二章

    9. **实战演练**:通常,第二章会包含一些基础的实战例子,比如创建第一个Spring项目,配置Bean,使用AOP,或者搭建一个简单的Spring MVC Web应用,以帮助读者巩固理论知识并实践操作。 通过深入学习这一章的内容,...

    SSM框架应用开发与案例实战(Spring+SpringMVC+MyBatis)(慕课版)-PPT.rar

    "第11章 Spring Web MVC入门.ppt"和"第12章 注解式控制器开发.ppt"将带你了解SpringMVC的工作流程,包括模型-视图-控制器(MVC)设计模式,以及如何使用注解定义控制器、处理请求和返回视图。你还将学习到如何处理...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    SpringBoot实战(第4版)清晰版

    3 小结 18 第 2 章开发第一个应用程序 19 2 . 1 运用 Spring Boot 19 2 . 1 . 1 查看初始化的 Spring soot 新项目 21 21 . 2 Spring Boot 项目构建过程解析 24 2 . 2 使川起步依赖, 27 2 . 2 . 1 指定基于功能的...

    Spring_3.x企业应用开发实战 目录

    ### Spring 3.x 企业应用开发实战:关键知识点解析 #### 第1章 Spring概述 - **1.1 认识Spring** - **定义与作用**:Spring 是一个开源的轻量级 Java 开发框架,它主要的目标是解决企业级应用开发中的复杂性问题...

    Spring Boot实战入门篇视频课程

    第一章:对spring boot的特性、优缺点、场景进行详细讲解。第二章:springboot核心功能第三章:热部署的几种模式第四章:Web开发的各种技术第五章:数据访问层:spring data jpa、jdbctemplate、mybatis、redis第六...

    Spring.NET_NHibernate从入门到精通

    #### 第一章:Spring.NET与NHibernate概览 **Spring.NET** 是一个开放源代码的应用程序框架,它为.NET平台提供了强大的依赖注入(DI)和面向切面编程(AOP)支持。Spring.NET的核心特性之一是其能够轻松地与其他...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...

    spring boot实战.pdf高清无水印

    第2章 开发第一个应用程序 19 2.1 运用Spring Boot 19 2.1.1 查看初始化的Spring Boot新项目 21 2.1.2 Spring Boot项目构建过程解析 24 2.2 使用起步依赖 27 2.2.1 指定基于功能的依赖 28 2.2.2 覆盖...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...

    《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》配套资源.zip

    《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》是一份全面深入讲解Java企业级应用开发的教程,重点聚焦于Spring、Spring MVC和MyBatis这三个核心框架。这些技术在现代Java开发中占据着举足轻重的地位...

    Spring从入门到精通(第8章)

    在本资源中,我们聚焦于"Spring从入门到精通"一书的第8章内容,主要涉及Spring框架的核心概念和实战技巧。Spring是Java开发中不可或缺的利器,它以其强大的依赖注入(Dependency Injection, DI)和面向切面编程...

    Java Web开发实战宝典 第20-24章

    在《Java Web开发实战宝典》的第20至24章中,作者王国辉深入浅出地介绍了Java Web开发的关键技术与实践方法。这些章节涵盖了从基础的Servlet和JSP到更高级的框架如Spring MVC,以及数据库交互和安全控制等多个方面。...

    Java进阶教程数据层全栈方案SpringData高级应用视频教程

    第一章 SpringData概述 1.持久层开发的问题 2.SpringData简介 第二章 JPA回顾 1.JPA基础 2.JPA实战 3.JPA的重要API介绍 第三章 SpringData JPA基础 1.SpringData JPA简介 2.SpringData JPA快速入门 3.SpringData Jpa...

    Spring从入门到精通(第2章)

    在《Spring从入门到精通》这本书的第二章中,我们主要会探讨Spring框架的基础知识以及如何开始使用这个强大的Java开发工具。Spring是一个开源的应用框架,它简化了Java企业级应用的开发过程,提供了诸如依赖注入、...

Global site tag (gtag.js) - Google Analytics