`
r361251
  • 浏览: 4750 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Spring-核心组件

阅读更多
Spring总体框架: 
    Spring核心组件只有三个:Core、Context和Bean。(特色功能:Web、AOP、Transaction、JDBC、JMX、Orm等。)
    首先先介绍下Spring的设计理念,前面说的Spring的三个核心组件,如果要在他们三个选出核心,那就非Bean组件莫属了,为何这样说,其实Spring就是面向Bean的编程(Bean Oriented Programming BOP),Bean在Spring中才是真正的主角。
    Bean在Spring中的作用就像Object对OOP的意义一样,没有对象的概念就像没有面向对象的编程,在Spring中没有Bean也就没有Spring存在的意义。Spring为何如此流行?我们用Spring的原因是什么?你会发现原来Spring解决了一个非常关键的问题,它可以让你的对象之间的依赖关系转而用配置文件来管理,也就是它的依赖注入机制。而这个注入关系在一个叫IOC的容器中管理,那么在IOC容器中又是什么?就是被Bean包裹的对象。Spring正是通过把对象包装在Bean中从而达到管理这些对象及做一系列额外操作的目的的。
    核心组件是如何协同工作的?通俗的说法:把Bean比作一场演出中的演员,Context就是这场演出的舞台背景,而Core应该就是演出的道具了。只要他们在一起才能具备演一场好戏的基本条件。当然如果想让场演出足够精彩,这些节目就是Sping能提供的"特色功能"了。
    我们知道Bean包装的是Object,而Object必然有数据,对Context来说它就是要发现每个Bean之间的关系,所以Context就是一个Bean关系的集合,这个关系集合又叫IOC容器。Core组件又有什么作用?其实Core就是发现、简历和维护每个Bean之间的关系所需要的一系列工具。

Bean组件:
    Bean组件在Spring的org.springframework.beans包下。在这个包下的所有类主要解决了3件事:Bean的定义、Bean的创建及对Bean的解析。
   Spirng Bean的创建是典型的工厂模式,它的顶级接口是BeanFactory,它有3个子类:ListableBeanFactory、HierarchicalBeanFactory和DefaultListableBeanFactory,最终默认实现类的是DefaultListableBeanFactory,它实现了所有接口。
    Bean的一定完整地描述了再Spring的配置文件中你定义的<bean/>节点所有的信息,包括各种子节点。当Spring成功解析你定义的一个<bean/>节点后,在Spring的内部它就被转化成BeanDefinition对象,以后所有的操作都是对这个对象进行的。

Context组件:
    Context在Spring的org.springFramework.context包下,前面已经讲解了Context组件在Spring中的作用,它实际上就是给Spring提供一个运行时的环境,用以保存各个对象的状态。
    Application是Context的顶级父类,它除了能标识一个应用环境的基本信息外,还继承了5个接口,其中ApplicationContext继承了BeanFactory,这也说明了Spring容器中运行的主体对象是Bean。另外ApplicationContext继承了ResourceLoader接口,使得ApplicationContext可以访问到任何外部资源。
    ApplicationContext的子类包含两个方面:
       1.ConfigurableApplicationContext表示Context是可修改的,也就是在构建Context中,用户可以动态添加或修改已有的配置信息,它下面又有多个子类,其中最经常使用可更新的Context,即AbstractRefreshableApplicationCont类。
       2.WebApplicationContext 顾名思义就是为Web准备的Context,它可以直接访问ServletContext,在通常情况下,这个接口用得很少。
    总体来说ApplicationContext必须要完成以下几件事情:
       1.标识一个应用环境。
       2.利用BeanFactory创建Bean对象。
       3.保存对象关系表。
       4.能够捕获各种事件。
    Context作为Spring的IOC容器,基本上整合了Spring的大部分功能,或者说是大部分功能的基础。

Core组件:
    Core在org.springframework.core包下,Core组件主要就是定义了访问资源的方式,以及对于各种资源进行用统一的接口来抽象,屏蔽了具体资源的类型。资源的顶级接口为Resource,它继承自InputStreamResource,实现了其getInstream方法,这样所有的资源就是通过该方法来获取输入流的。对于资源的加载,也实现了统一,定义了一个资源加载顶级接口ResourceLoader,它默认的加载就是DefaultResourceLoader。
分享到:
评论

相关推荐

    springIOC核心组件分析.vsdx

    spring-context-indexer:类管理组件和Classpath扫描 spring-expression:表达式语句 切面编程: spring-aop:面向切面编程,CGLB,JDKProxy spring-aspects:集成AspectJ,Aop应用框架 spring-instrume

    spring-struts1-strust2-hibernate 核心包介绍

    这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2) spring-beans.jar 这个jar文件是所有应用...

    spring-aop-5.1.0.RELEASE.jar

    spring-**core**-4.3.6.RELEASE.jar :包含spring框架基本的核心工具类,spring其他组件都要用到这个包里的类,其他组件的基本核心 spring-**beans**-4.3.6.RELEASE.jar:所有应用都要用到的jar包,它包含访问配置...

    springAOP核心组件分析.pdf

    springAOP核心源码流程分析,请基于5.0.6版本进行代码跟进。

    spring-batch-reference.pdf

    springbatch批处理框架,很好,帮助大家熟悉应用批处理的业务,可以一起来看看,spring的核心组件之一,我们一起来hold住

    spring4.1核心包

    6. spring-core-4.1.1.RELEASE.jar spring核心包 7. spring-expression-4.1.1.RELEASE.jar spring表达语言 SpEL以"#{...}"进行标识。 8. spring-instrument-4.1.1.RELEASE.jar Spring对服务器的代理接口 9.spring-...

    spring jar 包详解

    (4) spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

     这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,...

    spring-thinking

    简单实例理解spring核心组件-IOC容器的产生及原理、理解spring框架核心

    spring-framework-3.1.0.RELEASE.zip

    Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。... 1、核心容器 2、Spring 上下文 3、Spring AOP 4、Spring DAO 5、Spring ORM 6、Spring Web 模块 7、Spring MVC 框架

    Spring MVC核心组件之HandlerMapping详解

    java Spring MVC核心组件之HandlerMapping详解

    spring4.3.9相关jar包

    Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 外部依赖Commons Logging, (Log4J)。 spring-beans.jar(必须):这 个jar 文件是所有应用都要...

    spring-cloud基础学习导图

    spring-cloud学习导图。包含内容为:spring-cloud下各模块应用介绍(核心组件、配置管理工具、消息总线等各模块)、基于springboot的微服务构建

    springboot学习思维笔记.xmind

    @Component组件,没有明确的角色 @Service在业务逻辑层(service层) @Repository在数据访问层(dao层) @Controller在展现层(MVC→SpringMVC) 注入Bean的注解 @Autowired:Spring提供的注解...

    【预习资料】02.Spring Boot 核心组件之Starter1

    【预习资料】02.Spring Boot 核心组件之Starter1

    SpringCloud五大核心组件

    SpringCloud五大核心组件。 一篇文章带你快速了解!

    最新最全的spring开发包

    这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类,...

    spring框架约束步骤及教程

    spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其他组件都要使用到这个包里的类,是其他组件的基本核心,当然你也能在自己的应用系统中使用这些工具类。 spring-beans.jar 这个jar文件是所有...

    spring-boot中文教程

    描述:Spring Boot中文文档是Spring Boot官方文档的中文翻译版,它包含了Spring Boot的基本介绍、快速入门、核心特性、高级特性等内容,可以帮助用户快速了解和掌握Spring Boot的使用方法和技巧。 Spring Boot是一款...

    spring jar包

    4.spring-context:这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。

Global site tag (gtag.js) - Google Analytics