`
javer
  • 浏览: 68874 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个牛人对spring框架的理解

    博客分类:
  • ssh
阅读更多

大名鼎鼎的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还提供了与多个主流框架的支持
可以和其它开源框架集成

分享到:
评论

相关推荐

    牛人的spring学习笔记,非常适合初学者

    例如,在Spring框架中,可以通过接口或抽象类来定义一个服务层的标准,而具体的实现则可以由不同的类来完成。 #### 第二课:JDOM的基本使用 JDOM(Java Document Object Model)是一个用于处理XML文档的Java库。它...

    Spring学习之牛人总结

    "Spring学习之牛人总结"这份资料显然涵盖了Spring框架的核心概念和最佳实践,帮助开发者深入理解和掌握这个强大的工具。以下是根据标题和描述所提炼出的一些Spring框架的关键知识点: 1. **依赖注入(Dependency ...

    一个牛人给java初学者的建议

    - 这对于初学者来说是一个极大的便利,可以让开发者将更多精力集中在业务逻辑而非底层细节上。 3. **跨平台性**: - Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,无需重新编译。 - 这一点极大地提高了...

    一个牛人给初学者的建议

    Java的一个显著优点是它的内存管理机制。Java通过垃圾回收(Garbage Collection)自动处理内存分配和释放,开发者无需手动管理内存,从而降低了程序出错的可能性,特别是避免了常见的C/C++中的空指针问题。虽然Java...

    一个牛人给java初学者的建议(让我顶礼膜拜)

    6. 学习框架:如Spring、Hibernate等,这些框架在企业级开发中广泛使用,可以提升开发效率。 7. 不断跟进Java的新特性:Java语言持续更新,学习新版本中的改进和新功能,如Java 8的Lambda表达式,Java 11的模块系统...

    一个牛人给初学JAVA者的建议

    其次,Java的一个重要特点是其对指针的处理。Java完全屏蔽了指针操作,引入了垃圾回收机制,这极大地简化了内存管理,使开发者无需担心内存泄漏或空指针问题。尽管在一定程度上牺牲了运行效率,但换来了更高的程序...

    一个Java牛人给java初学者的建议--非常经典

    这篇经典的文章集锦了一个Java牛人的经验与建议,旨在为初学者提供有效的学习路径和技巧,帮助他们更快地融入这个强大的编程世界。 首先,Java的基础是关键。学习Java必须从基础开始,包括理解基本的数据类型、控制...

    看牛人如何学习JAVA(重新上传)

    "一个牛人给java初学者的建议 .doc" 文件,正如其名,很可能是资深开发者对新手的宝贵建议。这些建议可能包括坚持实践、阅读源码、参与开源项目、熟悉设计模式、不断提升算法能力等方面的指导。实践是编程学习中不可...

    ssh三大框架学习心得

    Spring则是一个全面的后端应用框架,涵盖了依赖注入(DI)、面向切面编程(AOP)、事务管理等核心功能。Spring的DI允许开发者在运行时动态地配置对象间的依赖关系,降低了代码之间的耦合度。AOP则提供了在不修改原有...

    JAVA一位牛人给初学者的建议

    - **学习框架与工具**:随着项目的复杂度增加,掌握Spring、Hibernate等框架对于提高开发效率至关重要。 - **关注新技术**:Java生态系统不断发展,及时了解并学习新的技术和工具,如Kotlin、Reactive Streams等。 ...

    Java大礼包 深入知识

    Spring框架则是一个全面的企业应用框架,它提供了依赖注入(DI)和面向切面编程(AOP)等特性。Spring还包含Spring MVC,一个用于构建Web应用的模块,可以与Struts一起使用。Spring的IoC容器管理对象的生命周期,而...

Global site tag (gtag.js) - Google Analytics