Spring的由来
Spring由来:当J2EE应用程序广泛使用的时候,出现了事务管理之类的核心中间层概念的标准化,但是在众多的时间活动中,都没有很好的办法解决。
由于用EJB开发J2EE应用的人,都知道EJB要严格地继承各种不同类型的接口,类似的或者重复的大量的代码存在。配置也相对很单调和复杂,同样适用JNDI进行对象查询的代码也是单调而枯燥。虽然xdoclet的出现,而有所缓解,但是学习EJB的高昂代价和极低的开发效率,极高的资源消耗,都造成了EJB的适用困难。而Spring的横空出世,就是为了解决这些问题。使用Spring的一个最大的目的就是使J2EE开发更加容易,致力于一个以统一的高效的方式构造整个应用,并将单层框架(Struts、Hibernate)以最佳的组合糅合在一起建立一个连贯的体系。
Spring初衷
1.J2EE开始应该更加简单
2.使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。
3.为JavaBean提供了一个更好的应用配置框架
4.更多的强调面向对象设计,而不是现行的技术
5.尽量减少不必要的异常捕捉
6.使用应程序更加容易测试
Spring的目标
1.可以令人方便愉快的使用Spring
2.应用程序代码并不依赖于Spring APIs
3.Spring不和现有解决方案竞争,而是致力于将他们融合在一起。
Spring的组成
1.最完善的轻量级核心框架
2.通用的事务管理抽象层
3.JDBC抽象层
4.集成了Toplink,Hibernate,JDOand iBATIS SQL Maps
5.AOP功能
6.灵活的MVC Web应用框架
Spring七模块

1.Spring Core:核心容器,BeanFactory(控制反转)提供了组件声明周期管理,组件的穿件,封装,销毁等功能。
2.SpringContext:ApplicationContext,扩展核心容器,提供事件处理,国际化等功能。它提供了一些企业级服务的功能,提供了JNDI,EJB,RMI的支持。
3.Spring AOP:提供切面支持
4.SpringDAO:提供事务支持,JDBC,DAO支持
5.Spring ORM:对流行的O/RMapping封装或支持
6.Spring Web:提供Web应用上下文,对Web开发提供上的支持,如请求,表单,异常等
7.Spring Web MVC:全功能MVC框架,作用等同于Struts
Spring优点
1.
Spring能够有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的API特制的framework,spring致力于解决剩下的问题。
2.
Spring能够消除在工程中常见的对Singleton的过多使用。
3.
通过把对接口编程而不是对垒编程的代价几乎减少到没有,Spring能够促进编程习惯的养成。
4.
Spring能使EJB的使用成为一个实现选择,而不是必然选择。你能够选择用POJOs或Iocal EJBs来实现业务接口,而不影响调用代码。
5.
Spring帮助你解决了许多问题而不需要EJB。Spring能提供一种EJB的代替物,它们适用于许多web应用。例如:Spring能够使用AOP提供声明式事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。
6.
Spring为数据存取提供了一个一致的框架,无论是使用JDBC还是O/R mapping产品(如Hibernate)。
7.
易于建立测试单元
Spring缺点
1.
降低了可测试性和面向对象程度
2.
中断了应用程序的逻辑,是代码变得不完整,不直观
3.
后期维护比较困难
知识共鸣
Spring的七个模块我们以前都涉及过,我们可以和以前拥有的知识产生联系。
Spring是一个轻量级的控制反转(IoP)和面向切面(AOP)的容器框架(是Spring的重头戏,详细介绍),Spring
MVC(稍后详细介绍)
知识共鸣点:
SpringDAO:Spring+struts1+hibernate集成项目中,异常层次结构简化错误处理,这样异常,由Spring本身处理。
Spring ORM:Hibernate的应用
Spring Web模块:Spring+struts1集成的项目中
Spring Context:包括企业服务,国际化,电子邮件,校验,调度功能,EJB和JNDI。
总结
上述优点与缺点都是结合自己的经验而写出来的,是自己在学习中一小点点时间,有什么不对之处,亲!请多多指点!
分享到:
相关推荐
- **Spring**:这个名字本身就寓意着春天的到来,意味着为开源软件世界带来了新的生机与活力。 - **发展历史**:2002年首次推出的Spring框架雏形被称为interface21框架。该框架经过重新设计与功能丰富后,在2004年3...
HelloCoder1,LearnJavaToFindAJob介绍 :bouquet: LearnJavaToFindAJob是一个帮助Java程序员到找到一份工作的面试指南。涵盖了Java面试的常见翻译,包括:1.1,高频面试题Java基础计算机网络操作系统Linux 塞尔...
描述中的“春天操作弹簧”可能是对Spring框架的一种诗意表达,强调其在软件开发中的活力和灵活性。 Spring框架的核心特性之一是依赖注入(Dependency Injection,简称DI),这是它解决复杂应用中对象之间依赖关系的...
Java程序员所需要掌握的核心知识:集合框架,JVM机制,多线程与并发框架,网络协议,SpringIOC,SpringAOP,SpringMVC,SpringCloud,Dubbo,MySQL,分布式,微服务,高并发与高可用等。转载须知:转载请在文首注明...
Java大数据学习笔记大数据专题JVM春天書目《Java编程思想》《Mybatis从入门到精通》《深入分析Java Web技术内幕》《Java设计模式》《Java EE框架技术》《自顶向下方法》《Spark机器学习进阶实战》《Java编程从入门到...
"lazyers-spring"这个名字中,"lazyers"显然指的是那些希望省时省力的程序员,而"spring"则可能暗示了它借鉴了Spring框架的一些设计理念,尤其是在依赖注入和面向切面编程方面。Spring框架在Java世界中广受欢迎,其...
"学习春天"项目是一个以Java为基础,专注于Spring框架的学习资源集合。这个项目涵盖了Spring框架的多个核心组件和概念,旨在帮助开发者深入理解如何利用Spring构建RESTful Web服务。以下是对这些知识点的详细解释: ...
"春天引导form2"可能是指一个基于Spring Boot的Web应用示例,特别是关于表单处理的部分。在这个场景中,“form2”可能指的是一个进阶的表单处理教程或者示例项目,用于演示如何在Spring Boot应用中处理HTTP表单提交...
【描述】:Spring-Github-CRX是一款针对GitHub的浏览器扩展程序,特别设计用于改变GitHub的界面主题,将原本的样式转化为具有春天色彩的弹簧风格。这款插件为用户提供了独特的视觉体验,尤其是在浏览代码仓库、查看...
【标题】"tp_project:Hibernate,春天,Maven"揭示了这个项目是关于使用Java的三个关键框架——Hibernate、Spring和Maven进行开发的。这三个技术在Java开发中扮演着重要角色,尤其在企业级应用中。让我们逐一深入...
"你好春天"这个标题可能是在比喻程序员在学习或使用TypeScript时的感受,如同春天般充满希望和生机。 在深入讲解TypeScript之前,我们先了解它与JavaScript的关系。JavaScript是Web开发的核心语言,但它的动态类型...
6. 春天 Boot 和 Vue.js 的应用:本文档使用 Spring Boot 和 Vue.js 进行系统开发,这两种技术能够提高系统的开发效率和可维护性。 7. 网上服装商城的优点:该网上服装商城能够解决许多传统手工操作的难题,比如...