`
Just-Do-it
  • 浏览: 29947 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring新手对Spring的理解

 
阅读更多
一直使用Struts,由于在换工作的过程中,发现对Spring要求越来越多,所以开始学习这个甚为流行的框架。。
文章全文为转载“Irving_wei”的文章,觉得跟刚入学SPRING的我还是蛮合适的。。所以全文转载,多谢!
另,我也特别喜欢Irving_wei兄博客中的那句“现在我来了,你们看到的也将因此改变”,一并粘上,与大家分享。
http://irving-wei.iteye.com/blog/344071
http://irving-wei.iteye.com/blog/344792


以下为全文:
天第一次接触Spring,对IoC的感觉就是:把所有的类之间的联系全部放到XML里面进行管理,从而减小类和类之间的关系,用类和配置文件(xml)之间的联系来取代类和类之间的联系。当要用到关联类的实例的时候,就只要实例化一个XmlBeanFactory对象,获取到相应关联类的bean实例,调用实例实现类的具体方法,最后释放XmlBeanFactory对象。
所谓依赖注入中“注入”的理解,就是把有关联的类的“ID”(自定,唯一),和它的路径配置到Xml里面。

Spring的依赖注入,也称作是“反转控制”。
   当一个类A需要用到另一个类B的对象的时候,通常情况下,就是在A中实例化一个B类的对象,然后通过对象来调用B类中的非私有变量和方法。这是不符合工厂设计模式的要求的,并且这样的设计方式存在很多的缺陷:
  其一,A类去主动调用B类的构造方法,这就使得A类和B类之间的关系非常紧密,在Java程序设计的过程中,这种两个类之间关系非常紧密的情况是非常忌讳发生的,因为结合紧密的两个类在程序设计过程中会很难进行调试,尤其是在大的程序中,如果一连串的类之间发生调用关系,那么如果其中某一个类发生了改变,或者说某一个或者几个类发生了错误,需要调试,那么,所有调用到这几个类的类都要进行相应的修改,这是很麻烦的事情。
   其二,A类调用B类的方法,这就说明,A类必须知道B类方法的实现方式,这样使得AB之间的耦合度相当高,这也是不利于Java程序设计的。整个java程序设计的发展历史,就是一个怎样在类与类之间解耦的过程,让有关联的类处于一个松耦合的状态,这是java编程所追求的一个目标。
  Spring框架是工厂设计模式的一个非常好的体现,也同样特别注意了“解耦”,同样,它也是用接口的方式将程序解耦发挥到一个新的境界的框架。
   同样引用上面的例子,类A需要用类B的方法,在Spring框架中,不再是由A去主动调用B的构造方法,而是由Spring容器来完成,Spring容器只需要知道A需要得到哪个Bean的实例,就会帮A去创建一个B的实例,并不需要A自己去调用B的构造方法,Spring怎么知道A需要哪个Bean的实例?这就要涉及到Spring的IoC容器,它是一个“工厂”,可以对每个Bean以配置文件的形式进行管理,而A需要B对象的时候,就只要创建一个工厂实例,然后通过工厂实例来获得一个B的bean实例,这样就可以去使用类B的非私有成员了。
  从整体上看,所有的类并没有和于它关联的类有任何的直接联系,所有的类都通过配置文件的形式,“挂”到Spring容器里去了,由Spring容器统一管理。调用者直接等待容器把被调用者的实例“注入”进来,然后使用。由此可以想象,Spring容器的功能应该有多强大。

分享到:
评论

相关推荐

    适合新手入门的springcloud完整项目资源,附带sql和详细的开发文档,可直接导入运行。

    SpringCloud是中国Java开发者广泛使用的微服务框架之一,它提供了一系列工具和服务来简化分布式系统开发,如服务发现、负载均衡、断路器、API网关...通过深入研究和实践,可以快速提升对SpringCloud的理解和应用能力。

    spring-cloud项目_springcloud_springcloud项目_springcloud_spring-clou

    这个项目包含了基本的 Spring Cloud 组件,非常适合新手入门学习。你可以通过这个项目了解如何集成和配置这些组件,以及它们如何协同工作来构建一个完整的微服务架构。在实际开发中,还需要考虑其他方面,如安全性、...

    spring的一个适合初学者的项目

    此外,理解项目的结构和组件之间的关系,有助于提高对Spring框架的整体理解。 总之,"Spring_3300_Registration_11"项目是一个很好的起点,它涵盖了Spring的核心特性,适合初学者实践和学习。通过动手实践,你可以...

    Spring Security 新手入门级maven实例

    **Spring Security新手入门级Maven实例详解** Spring Security是一个强大且高度可定制的身份验证和访问控制框架,用于Java和Java EE应用。它为应用程序提供了全面的安全解决方案,包括用户认证、授权以及安全配置。...

    spring真正适合新手上路啊,呵呵

    对于新手来说,Spring框架的学习路径通常从理解核心概念(如DI和AOP)开始,然后逐步学习Spring MVC、Spring Boot和Spring Data。实践是最好的老师,通过创建简单的项目,如CRUD操作或构建一个简单的Web应用,可以...

    spring源码包.zip

    《Spring框架核心模块深度解析》 Spring框架是Java开发领域中的一个重要组成部分,它以其强大的功能和灵活的设计赢得了广泛的赞誉。...无论是新手还是经验丰富的开发者,理解Spring的源码都将是一次宝贵的进阶之旅。

    spring-5.3.14-dist.zip(spring-framework-5.3.14)

    《Spring Framework 5.3.14:深度解析与应用》 ...通过对docs、libs和schema的深入理解,开发者可以充分利用其特性,构建出高效、可扩展的系统。无论是新手还是经验丰富的开发者,都能从中受益匪浅。

    spring包,spring开发工具

    Spring框架是Java开发中的核心工具集,它以其模块化、可扩展性和易用性而闻名。这个名为"spring"的压缩包很可能包含...无论你是新手还是经验丰富的开发者,理解并掌握Spring框架都是提升开发效率和代码质量的关键步骤。

    自己写的简单spring练手项目,适合新手

    这是一个基于Spring框架的初级练习项目,旨在帮助新手学习和熟悉Spring的基本用法。Spring是一个广泛使用的Java...通过实践这个项目,新手能够更好地理解和掌握Spring的核心概念,并逐步提升自己的Java EE开发技能。

    Spring4.3完整官网下载的完整包

    在这个完整的包中,我们有Spring4.3的所有组件,包括jar文件、资源文件和文档,这为我们深入理解和使用Spring框架提供了丰富的材料。 首先,让我们关注jar文件。Spring框架的核心组件通常包含在几个主要的jar文件中...

    spring学习.zip

    《全面解析Spring技术系列》 在当今的Java开发领域,Spring框架无疑是最为广泛使用的开源框架之一,它以其强大的功能和灵活的设计理念...无论你是Spring的新手还是有经验的开发者,这个资料包都能提供宝贵的学习材料。

    一本很不错的关于spring入门的书籍

    4. **数据访问集成**:Spring提供对各种数据访问技术的抽象,包括JDBC、Hibernate、MyBatis等ORM框架,使得开发者能够更方便地进行数据库操作。 5. **MVC框架**:Spring MVC是Spring提供的用于构建Web应用程序的...

    官方spring-framework-4.3.13.RELEASE完整包

    《Spring Framework 4.3.13.RELEASE...开发者可以放心地在生产环境中使用,同时,通过深入学习这个版本,可以提升对Spring框架的理解,从而更好地利用其强大功能,提高开发效率,构建出高效、可扩展的企业级应用程序。

    Spring+MyBatis+MySQL新手搭建项目

    在IT行业中,Spring、MyBatis和MySQL是三个...这个过程有助于新手理解Java Web开发的全貌,包括后端架构、数据库操作以及前后端交互等核心概念。通过实践,你可以逐步掌握这些技术,并为后续更复杂的项目打下坚实基础。

    Spring Boot 新手入门指南.pdf

    适合人群:适用于对Spring Boot感兴趣的新手开发者和技术爱好者,尤其适合有Java开发经验但不了解Spring Boot框架的技术人员。 使用场景及目标:初学者可以通过阅读本指南掌握快速构建Spring Boot应用的方法,进一步...

    Spring In Action中文版+英文版+文中源码

    《Spring In Action》是一本深度剖析Spring框架的权威著作,无论是中文版还是英文版,都是IT开发者们深入理解和掌握Spring框架的重要参考...无论你是Spring新手还是有经验的开发者,这本书都将是你不可或缺的参考资源。

    spring开发文档集合

    总的来说,这个压缩包提供了从基础知识到进阶应用的全面Spring学习资料,无论是新手还是经验丰富的开发者都能从中受益。通过研读这些文档,开发者可以深入理解Spring框架的工作原理,学会如何利用它来构建高效、可...

    Spring-FrameWork5.2.9

    此外,官方文档是学习和理解Spring Framework的关键资源,它详细介绍了框架的各个方面,包括配置、编程模型、模块和最佳实践。通过阅读文档,开发者可以深入学习如何利用Spring构建高效、可扩展的应用程序。 总的来...

    跟开涛学spring3

    通过《跟开涛学Spring3》这本书,读者可以逐步学习并掌握这些关键知识点,无论你是Java新手还是希望提升Spring技能的开发者,都能从中受益。书中通过实例和实践案例,帮助你理解每个概念,并引导你将理论知识应用于...

Global site tag (gtag.js) - Google Analytics