`
齐晓威_518
  • 浏览: 618990 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

一个牛人对sping的比喻

 
阅读更多

大名鼎鼎的Spring框架 
有人曾说2005年一片叫春之声,指的就是该框架 
Spring起源于Rod Johnson的《Expert One-on-One J2EE Design and Development》一书 
Rod Johnson认为,J2ee里面的那一套//尤其是ejb 
太重了,对于单机的系统来说,没有必要使用那么复杂的东西 
于是就开始设计并引导Spring小组开发出这样一个构架 
不能不说他是个天才,因为的的确确不是所有的系统都是跨多服务器的 
没有必要把一个简单的系统设计得那么复杂//天才的那几个共性又体现出来了 
Spring从诞生之日起就是针对EJB的,力争在不少应用上取代EJB 
而它也确实达到了这个目的 
现在包括WebLogic等主流应用服务器还有主流IDE都开始逐渐接受该框架 
并提供相应支持 
提到Spring就不能不说控制反转Ioc//Inversion of Control 
和依赖注射DI//Dependency Injection 
什么叫控制反转呢? 
套用好莱坞的一句名言就是:你呆着别动,到时我会找你。 
什么意思呢?就好比一个皇帝和太监 
有一天皇帝想幸某个美女,于是跟太监说,今夜我要宠幸美女 
皇帝往往不会告诉太监,今晚几点会回宫,会回哪张龙床,他只会告诉太监他要哪位美女 
其它一切都交由太监去安排,到了晚上皇帝回宫时,自然会有美女出现在皇帝的龙床上 
这就是控制反转,而把美女送到皇帝的寝宫里面去就是注射 
太监就是是框架里面的注射控制器类BeanFactory,负责找到美女并送到龙床上去 
整个后宫可以看成是Spring框架,美女就是Spring控制下的JavaBean 
而传统的模式就是一个饥渴男去找小姐出台 
找领班,帮助给介绍一个云云,于是领班就开始给他张罗 
介绍一个合适的给他,完事后,再把小姐还给领班,下次再来 
这个过程中,领班就是查询上下文Context,领班的一个职能就是给客户找到他们所要的小姐 
这就是lookup()方法,领班手中的小姐名录就是JNDI//Java Naming and Directory Interface 
小姐就是EJB,饥渴男是客户端,青楼是EJB容器 
看到区别了么?饥渴男去找小姐出台很麻烦,不仅得找,用完后还得把小姐给还回去 
而皇帝爽翻了,什么都不用管,交给太监去处理,控制权转移到太监手中去了 
而不是皇帝,必要时候由太监给注射进去就可以了 
看到Spring的美妙了吧,Spring还提供了与多个主流框架的支持 
可以和其它开源框架集成 

呵呵~看了之后感觉真想笑,不过比喻得倒很到位!

分享到:
评论

相关推荐

    Sping视频2 Sping视频2Sping视频2Sping视频2

    Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2Sping视频2

    sping结构的一个hello world例子

    在这个"Spring结构的一个hello world例子"中,我们将深入理解Spring框架的基础概念和基本使用方法。 1. **Spring框架概述** Spring是一个开源的Java平台,它简化了企业级应用程序的开发。它提供了从数据访问到事务...

    spingmvc+hibernate+sping

    sping+spingmvc+hibernate 在学习的时候毕业前夕自己根据资料和以前自己写的项目整合的套,对包哪些进行了选择,主要对事物aop的配置进行了配置,个人感觉不错,共享下,另外还对spingmvc,mybatis的整合项目也有,在...

    mybatis+sping mvc mybatis+sping mvc

    mybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvcmybatis+sping mvc mybatis+sping mvc

    Sping的jar包

    2. Log4j-1.2.17:Log4j是Apache的另一个著名项目,是一个广泛使用的日志工具,提供灵活的日志级别、输出格式和多种Appender(输出目的地),如控制台、文件、数据库等。它的配置可以通过XML或.properties文件进行,...

    sping3 spring-beans 类图 chm

    sping3 spring-beans 类图 chm

    sping 技术的主要讲解

    sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术sping 技术

    sping.net 2.0M1 和 NHiernate3.3结合的一个小例子

    1. **Spring.NET 2.0M1**:这是 Spring.NET 的一个预发布版本,引入了对 ASP.NET MVC、WCF 和 WF 的增强支持,以及对其他 .NET 技术的改进。它提供了一个强大的容器,用于管理对象的生命周期和依赖关系,从而简化了...

    sping配置jar包

    Spring 框架是 Java 开发中的一个核心组件,它为构建可维护、松耦合的应用提供了强大的支持。本主题将深入探讨 Spring 配置中涉及的 jar 包及其功能,帮助你理解如何将这些库整合到项目中,实现便捷的开发。 1. **...

    Sping定时器的使用

    总之,Spring定时器的使用是Spring框架中的一个重要特性,它通过注解和接口的方式简化了任务调度,使得开发者能够更加专注于业务逻辑,而不用关心底层的调度细节。深入了解并掌握这一特性,对于提高应用程序的自动化...

    sping 3 经典教程

    Spring框架是一个开源的轻量级Java应用开发框架,最初由Rod Johnson创建,旨在简化企业级应用程序的开发,提供一种更为简洁、高效的方式进行依赖注入和面向切面编程。Spring框架的核心特性包括但不限于: - **依赖...

    Sping最新资源包

    Hibernate是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作,简化了数据访问层的开发。在Spring中,可以使用Spring的JDBC抽象层或Hibernate支持来管理持久化。Spring通过HibernateTemplate或...

    sping的jar包

    Spring MVC提供了一个灵活的请求处理模型,支持视图解析、本地化、主题和异常处理。 6. **Spring Boot**:近年来,Spring Boot成为快速开发Spring应用的首选,它简化了配置,提供了大量的默认设置,使得开发者可以...

    sping配置用户密码加密解密

    - **DESCoder.txt**:这可能是一个关于DES(Data Encryption Standard)加密算法的配置或代码文件。DES是一种常见的对称加密算法,用于将明文密码转化为密文,确保数据在传输或存储时的安全。 - **DESjc.txt**:...

    Sping.net&NHibernate;&Common;.Logging&log4net;

    Spring.NET是一个开源的.NET框架,它提供了依赖注入(Dependency Injection,DI)和面向方面编程(Aspect-Oriented Programming,AOP)等核心功能,以促进软件的可测试性和可维护性。Spring.NET Services.dll是...

    sping MVC 简单小例子

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、模块化的Web应用程序。在这个"Spring MVC 简单小例子"中,我们将深入探讨如何利用它实现一个基础的"Hello, World!"程序,同时涵盖自定义Filter和Servlet...

    springmvc+sping+mybatis完整实例

    它提供了一个灵活的MVC(Model-View-Controller)设计模式实现,使得开发者可以将业务逻辑、数据和视图分离,提高代码的可维护性和复用性。在SSM项目中,Spring MVC作为前端控制器,接收用户请求,并根据配置分发到...

    sping学习压缩文件

    Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他许多功能。在这个"Spring学习压缩文件"中,我们可以深入理解...

Global site tag (gtag.js) - Google Analytics