spring 是是一个开源框架,是为了解决企业应用程序开发,功能如下
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。 Spring的两大核心AOP与IOC,可以单独用于任何应用,包括与Struts等MVC框架与Hibernate等ORM框架的集成,目前很多公司所谓的轻量级开发就是用 Spring + Struts(2)+Hibernate。
Spring MVC就是一个MVC框架,个人觉得Spring MVC annotation式的开发比Struts2方便,可以直接代替上面的Struts(当然Struts的做为一个非常成熟的MVC,功能上感觉还是比Spring强一点,不过Spring MVC已经足够用了)。当然spring mvc的执行效率比struts高,是因为struts的值栈影响效率 spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来

最新文章

  1. TP框架 ---空控制器和空操作
  2. uitableview性能优化(转)
  3. 点餐APP 冲刺三总结
  4. texCUBE() to CubemapSampler.Sample()
  5. quartz 报错:java.lang.classNotFoundException
  6. RSA PKCS1padding 填充模式
  7. c# winform InvokeRequired 解决跨线程访问控件
  8. ecshop 调用其他数据库中的商品
  9. FIFO 和 LRU 调度算法
  10. (转)Java ConcurrentModificationException异常原因和解决方法
  11. Python并发实践_01_线程与进程初探
  12. 通过slave_exec_mode=IDEMPOTENT跳过主从复制中的错误
  13. 思维导图软件比较-FREEMIND,XMIND,Mindjet Mindmanager
  14. JSTL标签库的基本教程之核心标签库(二)
  15. 一个ArrayList在循环过程中删除,会不会出问题,为什么?
  16. Luogu P1082 同余方程(exgcd模版)
  17. ext.net tooltip
  18. vue 异步请求
  19. centos 新建swap区文件
  20. FastDFS tracker storage 的工作原理及流程

热门文章

  1. 【LeetCode OJ】Longest Consecutive Sequence
  2. magento数据库备份导入还原
  3. GitHub for Windows
  4. wddm 部署问题解决
  5. 参数化SQL sql语句
  6. 学习Linux——计算机概论
  7. [转载]NoSQL by Martin Flower
  8. [转]SQL:JOIN用法
  9. 383. Ransom Note
  10. public static void main(String[] args){}函数诠释