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

学spring总结(Ioc)

阅读更多

今天看了海涛的<跟我学spring3>,这个是针对初学者的文章,并没有深入进行讲解.但是呢,还是对其做一个总结好了.

      1.  spring的用处

             Spring 能帮我们根据配置文件创建及组装对象之间的依赖关系。

             Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。

             Spring 能非常简单的帮我们管理数据库事务。

             Spring还提供了与第三方数据访问框架(如Hibernate、JPA)以及第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。而且自己也提供了一套Spring MVC框架,来方便web层搭建。

      2.  spring的基础

 

         核心容器: 包括Core、Beans、Context、EL模块。

             ●Core 模块: 封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。

             ●Beans 模块: 提供了框架的基础部分,包括反转控制和依赖注入。其中 Bean Factory是容器核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口编程,而非面向实现 编程;所有应用程序对象及对象间关系由框架管理,从而真正把你从程序逻辑中把维护对象之间的依赖关系提取出来,所有这些依赖关系都由 BeanFactory来维护。

             ●Context 模块: 以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化 Java EE支持、容器生命周期、事件传播等;核心接口是ApplicationContext。

             ●EL 模块: 提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring 容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。

 

   AOP 、Aspects 模块:

             ●AOP 模块: Spring AOP模块提供了符合 AOP Alliance 规范的面向方面的编程(aspect-oriented programming)实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中;这样各专其职,降低业务逻辑和通用功能的耦合。

             ●Aspects 模块: 提供了对AspectJ的集成,AspectJ提供了比Spring ASP更强大的功能。

 

数据访问/ 集成模块: 该模块包括了JDBC、ORM、OXM、JMS和事务管理。

             ●事务模块 :该模块用于Spring管理事务,只要是Spring管理对象都能得到Spring管理事务的好处,无需在代码中进行事务控制了,而且支持编程和声明性的事物管理。

             ●JDBC模块 :提供了一个JBDC的样例模板,使用这些模板能消除传统冗长的JDBC编码还有必须的事务控制,而且能享受到Spring管理事务的好处。

             ●ORM模块 :提供与流行的“对象-关系”映射框架的无缝集成,包括Hibernate、JPA、Ibatiss等。而且可以使用Spring事务管理,无需额外控制事务。

             ●OXM模块 :提供了一个对Object/XML映射实现,将java对象映射成XML数据,或者将XML数据映射成java对象,Object/XML映射实现包括JAXB、Castor、XMLBeans和XStream。

             ●JMS模块: 用于JMS(Java Messaging Service),提供一套 “消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

             ●Web/Remoting 模块: Web/Remoting模块包含了Web、Web-Servlet、Web-Struts、Web-Porlet模块。

             ●Web模块 :提供了基础的web功能。例如多文件上传、集成IoC容器、远程过程访问(RMI、Hessian、Burlap)以及Web Service支持,并提供一个RestTemplate类来提供方便的Restful services访问。

             ●Web-Servlet模块: 提供了一个Spring MVC Web框架实现。Spring MVC框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与Spring其他技术协作。

             ●Web-Struts模块 :提供了与Struts无缝集成,Struts1.x 和Struts2.x都支持

 

Test 模块: Spring支持Junit和TestNG测试框架,而且还额外提供了一些基于Spring的测试功能,比如在测试Web框架时,模拟Http请求的功能。

      3.  Ioc是什么

 

               ●谁控制谁,控制什么: 传 统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。

                   ●为何是反转,哪些方面反转了: 有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了

 

 

                ●谁依赖于谁: 当然是应用程序依赖于IoC容器;

                ●为什么需要依赖: 应用程序需要IoC容器来提供对象需要的外部资源;

                ●谁注入谁: 很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象;

                    ●注入了什么: 就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。

      4.  Ioc做什么

            它能指导我们如何设计出松耦合、更优良的程序

            IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。

             由IoC容器管理的那些组成你应用程序的对象我们就叫它Bean, Bean就是由Spring容器 初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了

 

     5.详解IoC容器

在Spring Ioc容器的代表就是org.springframework.beans包中的BeanFactory接口,BeanFactory接口提供了IoC容 器最基本功能;而org.springframework.context包下的ApplicationContext接口扩展了 BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现 (如针对web应用的WebApplicationContext)。简单说, BeanFactory提供了IoC容器最基本功能,而 ApplicationContext 则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用 于ApplicationContext。

容器实现一览:

• XmlBeanFactory BeanFactory实现,提供基本的IoC容器功能,可以从classpath或文件系统等获取资源;

  (1)  File file = new File("fileSystemConfig.xml");

           Resource resource = new FileSystemResource(file);

           BeanFactory beanFactory = new XmlBeanFactory(resource);

  (2)

          Resource resource = new ClassPathResource("classpath.xml");                 

          BeanFactory beanFactory = new XmlBeanFactory(resource);

 

• ClassPathXmlApplicationContext ApplicationContext实现,从classpath获取配置文件;

         BeanFactory beanFactory = new ClassPathXmlApplicationContext("classpath.xml");

• FileSystemXmlApplicationContext ApplicationContext实现,从文件系统获取配置文件。

         BeanFactory beanFactory = new FileSystemXmlApplicationContext("fileSystemConfig.xml");

 

         6.实例化bean

             使用构造器实例化Bean

             使用静态工厂方式实例化Bean,使用这种方式除了指定必须的class属性,还要指定factory-method属性来指定实例化Bean的方法,而且使用静态工厂方法也允许指定方法参数,spring IoC容器将调用此属性指定的方法来获取Bean,

             使用实例工厂方法实例化Bean,使用这种方式不能指定class属性,此时必须使用factory-bean属性来指定工厂Bean,factory-method属性指定实例化Bean的方法,而且使用实例工厂方法允许指定方法参数,方式和使用构造器方式一样

分享到:
评论

相关推荐

    Java-Spring-SpringIoC容器-SpringIoC的学习

    在Java Spring框架中,Spring IoC(Inversion of Control,控制反转)是核心特性之一,它使得应用程序的组件之间的依赖关系不再由代码直接管理,而是交由Spring IoC容器负责。这种设计模式降低了代码间的耦合,提高...

    Spring IoC简单示例-注解配置-Maven构建

    总结来说,Spring IoC通过注解配置和Maven项目构建,提供了一种高效、灵活的方式来管理和组织Java应用程序。通过学习和实践这些知识,开发者可以更好地利用Spring框架的优势,创建出易于维护和扩展的高质量软件。

    spring ioc+mvc代码

    总结,Spring的IOC和MVC设计模式是现代Java应用开发的基石,它们极大地提高了代码的可维护性和灵活性。通过构建自己的mySpring框架,我们不仅能掌握这两个核心概念,还能提升对软件设计模式的运用能力。

    spring IOC

    总结来说,Spring的IOC是通过控制反转实现对象的创建和管理,降低了组件之间的耦合度,提高了软件设计的灵活性。了解并熟练掌握IOC,对于提升Java企业级应用的开发效率至关重要。通过阅读源码,我们可以深入理解其...

    SpringIOC示例源代码

    Spring IOC(Inversion of Control...总结来说,这个示例源代码提供了一个基础的Spring IOC应用模型,包括了bean的定义、依赖注入以及测试。通过学习和理解这些文件,你可以更好地掌握Spring框架的核心理念和使用方式。

    Spring-IoC 容器 - v1.01

    要深入理解并应用Spring的IoC容器,你需要具备Java面向对象编程的基础,了解XML配置和Spring框架的基本概念。此外,对Java集合框架、数据库操作以及设计模式有一定的理解也将非常有益。 **总结** Spring的IoC容器...

    Spring IOC的注入方式总结

    Spring IOC,全称为Inversion of Control,即控制反转,是Spring框架的核心特性,它通过反转对象的创建和管理权,将对象的依赖关系交由容器处理,从而实现了解耦。在Spring中,IOC的主要实现方式有两种:依赖注入...

    Spring与IoC系列三:基于XML的依赖注入测试程序di.rar

    总结来说,这个"Spring与IoC系列三:基于XML的依赖注入测试程序di.rar"涵盖了Spring框架的核心特性——依赖注入,通过XML配置文件管理对象间的依赖关系,是学习和实践Spring框架不可或缺的一部分。通过学习和操作这...

    Spring IoC简单示例-XML配置-Maven构建

    总结,Spring IoC通过XML配置实现依赖注入,配合Maven进行项目构建,能够有效地提升代码的可维护性和可测试性,是Java开发中的重要实践。通过学习和掌握这些知识点,可以提升你的开发效率和代码质量。

    跟开涛学Spring

    1.1 【第二章】 IoC 之 2.3 IoC的配置使用——跟我学Spring3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3 . . . . . . . . . . . ...

    Spring学习笔记总结

    在这个笔记中,我们将总结Spring的主要概念和技术,包括IOC、AOP、MVC、Struts2和Hibernate的集成。 IOC(Inversion of Control) IOC是Spring的核心概念,它是一种将对象之间的耦合关系降低到最小的设计模式。在...

    Spring核心IoC和AOP的理解

    Spring核心IoC和AOP的理解 本文主要介绍了Spring核心IoC和AOP的相关知识,涵盖了IoC和AOP的概念、特点、优点和应用场景等方面的内容。 一、IoC(Inversion of Control) IoC是一种设计模式,目的是为了降低应用...

    跟我学Spring,Spring3学习资料

    - **IoC基础:** IoC是Spring的核心概念之一,通过它,Spring实现了对业务对象的管理和配置。IoC意味着创建对象的控制权由应用代码转到了外部容器,例如Spring容器。 - **IoC容器基本原理:** Spring的IoC容器通过...

    【狂神说】spring PDF学习总结笔记 Spring5.pdf

    【狂神说】Spring PDF学习总结笔记主要涵盖了Spring框架的核心概念、优点、组成部分以及相关扩展。Spring是一个由Rod Johnson创建的开源框架,旨在简化企业级应用开发的复杂性,它结合了众多现有技术,如SSH(Struct...

    helloAop.zip 内含spring ioc,aop例子

    在IT行业中,Spring框架是Java...总结来说,"helloAop.zip"提供的示例可以帮助我们深入理解Spring框架的两大支柱:IOC和AOP。通过学习和实践这些例子,开发者可以更好地掌握Spring框架,提高其在实际项目中的应用能力。

    14 离开了Spring,IoC容器还可以怎么做?慕课专栏1

    总结来说,Spring更适合大型、复杂的应用,提供了丰富的功能和广泛的社区支持。而Guice则更适合小型、高效率的项目,强调简洁和速度。选择哪个取决于项目需求和团队偏好。了解和掌握这两种IoC容器,能帮助开发者更好...

    Spring MVC 学习记录总结1

    在这个学习记录总结中,我们将深入理解Spring MVC的核心概念、主要组件以及其工作流程。 1. Spring MVC 概述 Spring MVC 是Spring框架的一部分,它基于Spring IoC(Inversion of Control,控制反转)容器,简化了...

    Spring2学习总结

    Spring的IoC容器负责管理Bean的生命周期和依赖关系。它通过XML、Java配置或注解来定义Bean的定义,并根据这些定义创建和管理Bean。 - **Bean的实例化方式**:包括构造器实例化、静态工厂方法实例化和实例工厂方法...

    Spring Security学习总结一

    ### Spring Security 学习总结与应用实践 #### 引言 在深入了解Spring Security之前,我们需要认识到,传统的权限验证逻辑往往杂糅于业务逻辑之中,这种混合不仅使得代码难以维护,而且降低了系统的整体效率。每当...

    自己写的类struts的简易的mvc实现+一个类Spring的IOC和简单AOP

    总结来说,这个压缩包提供了一个学习和实践MVC、IOC和AOP概念的平台。对于初学者,这可以帮助理解这些设计模式和框架的基本工作原理;对于有经验的开发者,这是一个有趣的尝试,可以了解如何从头实现这些复杂机制。...

Global site tag (gtag.js) - Google Analytics