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。
总结
上述优点与缺点都是结合自己的经验而写出来的,是自己在学习中一小点点时间,有什么不对之处,亲!请多多指点!
分享到:
相关推荐
黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心
黑马程序员-SpringCloud-学习笔记01-认识微服务
黑马程序员Spring框架2016版资料_day1黑马程序员Spring框架2016版资料_day1黑马程序员Spring框架2016版资料_day1
黑马程序员Spring框架2016版资料_day2黑马程序员Spring框架2016版资料_day2黑马程序员Spring框架2016版资料_day2
黑马程序员Spring框架2016版资料_day3黑马程序员Spring框架2016版资料_day3黑马程序员Spring框架2016版资料_day3
Java EE企业级应用开发教程(Spring Spring MVC MyBatis)(黑马程序员编著)
获取Spring Boot 2微框架的可重用代码配方和代码段 了解Spring Boot 2如何与其他Spring API,工具和框架集成 访问Spring MVC和新的Spring Web Sockets,以实现更简单的Web...本书适用于经验丰富的Java和Spring程序员。
1 spring是开源的轻量级框架 2 spring核心主要两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类...
马程序员_黎活明__Spring如何装配各种集合类型的属性.ppt )
Spring系统设计说明书_程序员.docxSpring系统设计说明书_程序员.docxSpring系统设计说明书_程序员.docxSpring系统设计说明书_程序员.docxSpring系统设计说明书_程序员.docxSpring系统设计说明书_程序员.docxSpring...
yle="width: 640px; height: 480px;" />yle="width: 640px;...绿色清新的Spring story春天的故事卡通PPT模板下载,关键词:清新绿色模板背景,春天主题幻灯片,气球、小房子、彩虹、泡泡PPT背景图片,卡通幻灯片模板;
黑马程序员spring框架2016视频笔记,本笔记对应的视频链接在文档中
黑马程序员的Spring框架的第二天的相关资料,里面有相关的代码和笔记
Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)配套书籍源码资料 ---黑马程序员 ,包含教学ppt,配套书籍源码,教学设计,课后题及答案,源代码
springcloud学习笔记.pdf
这里面的是黑马程序员的Spring框架第一天的资料,有相关的笔记,代码,和一些资料
黑马程序员的Spring框架的第四天的资料,包含了资料,代码,截图和当前这堂课的笔记
泰牛程序员 韩顺平 JavaEE全套 第17部分 Spring视频教程
黑马程序员-SpringCloud-学习笔记-02-微服务拆分及远程调用
程序员找工作面试题大集锦,收集整理了包括Android、C#、Java、Dubbo、 Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ...