一、什么是Spring

(1)、Spring真正的精华是它的Ioc模式实现的BeanFactory和AOP,它自己在这个基础上延伸的功能有些画蛇添足。

(2)、 Spring它是一个开源的项目,而且目前非常活跃;它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的 接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment。

二、Spring的优缺点

a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。

b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。

c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。

d.? 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。

e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

f. 使用Spring构建的应用程序易于单元测试。

g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。

h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。 Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。

缺点:

使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器。

最新文章

  1. python:页面布局 后台管理页面之常用布局
  2. PHP MongoDB 扩展安装配置
  3. Redis操作命令
  4. Effective_java之二:慎用重载函数
  5. PHP- Windows无法在本地计算机启动Apache的解决方法
  6. Codeforces Round #280 (Div. 2) D. Vanya and Computer Game 二分
  7. meta property=og标签含义及作用
  8. Code Complete 读后总结和新的扩展阅读计划
  9. javascript闭包特性
  10. 走进小作坊(十一)----移动web实现指南
  11. Android4.3模拟器界面中右侧菜单按钮无法使用问题解决办法
  12. 教你一步一步部署.net免费空间OpenShift系列之四------绑定域名、使用CDN加速
  13. UVA 11021 /概率
  14. No module named MySQLdb
  15. delphi 取得任意程序的命令行
  16. webDriver.Close() 和 webDriver.Quit() 、webDriver.Dispose() 的区别
  17. JavaScript学习总结(八)——JavaScript数组
  18. 因为链接服务器 "SQLEHR" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务
  19. WebRequest多线程 超时问题
  20. 10个常见的Android 新手误区

热门文章

  1. Nmap_使用介绍
  2. HDU-4614 Vases and Flowers(线段树区间更新+二分查找)
  3. Navicat for MySQL远程连接报10038的错误
  4. 变得“不正经”的CES,竟然越来越好玩了
  5. Date类与SimpleDateFormat类中parse()方法和format()方法
  6. AOP 总结
  7. Java生成随机图片验证码
  8. python学习笔记(2)数据类型-字符串
  9. 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析
  10. 基于hibernate的BaseDao及其实现类的设计