`
r361251
  • 浏览: 4922 次
  • 性别: 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。
分享到:
评论

相关推荐

    spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.5.1.jar

    在深入理解`spring-cglib-repack-3.2.4.jar`和`spring-objenesis-repack-2.5.1.jar`这两个jar包之前,我们先来了解一下Spring框架的核心概念。 Spring框架的核心包括依赖注入(Dependency Injection,DI)和面向切...

    springIOC核心组件分析.vsdx

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

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    在Spring Web MVC中,DispatcherServlet是核心组件,它负责接收HTTP请求,根据请求映射找到对应的处理器(Controller),并调用处理器完成业务逻辑。然后,处理器可以通过ModelAndView对象返回视图和模型数据。 在...

    spring-framework-5.0.0.RELEASE-dist.zip

    例如,`http://www.springframework.org/schema/beans`是Spring核心组件的配置命名空间,`http://www.springframework.org/schema/aop`则用于配置AOP方面的相关规则。 4. **Spring 5.0.0.RELEASE** 版本的改进与新...

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

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

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

    Spring框架的核心理念是依赖注入(Dependency Injection,DI),它简化了组件之间的耦合,使得代码更加灵活和易于测试。在5.3.9版本中,DI机制得到了进一步的增强,支持更复杂的依赖配置和更好的类型安全。 `docs`...

    spring-security-web源码所需jar包

    2. **spring-beans-3.1.2.RELEASE.jar**:包含Spring处理bean定义和依赖注入的核心类,使得Spring Security可以动态地管理其组件。 3. **spring-web-3.1.2.RELEASE.jar**:提供了处理HTTP请求和响应的能力,以及...

    spring-framework-1.0-with-dependencies.zip

    该压缩包内的"spring-framework-1.0"目录结构包含了Spring框架的核心组件和相关文档。以下是一些主要组件的简介: 1. **spring-beans**:这是Spring的核心模块,实现了IoC容器,负责管理对象的生命周期和依赖关系。...

    官方原版完整包 spring-framework-5.3.6.RELEASE-dist.zip

    1. spring-5.3.6-dist.zip:这是Spring Framework的核心发布包,其中包含了所有必要的JAR文件和库,以便开发者在项目中集成和使用Spring。这包括了Spring的核心模块,如Core Container(包含Bean工厂和依赖注入)、...

    spring-context-3.2.0 spring-core-3.2.0 等齐全的Spring jar包

    这里提到的是一组完整的Spring库,包括`spring-core`、`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-test`、`spring-jdbc`、`spring-orm`、`spring-aop`和`spring-tx`,它们都是3.2.0...

    spring-aop-5.1.0.RELEASE.jar

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

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    总的来说,Spring 框架的这些核心组件——AOP、Beans、Context 和 MVC,通过 XML 配置文件实现了高度的灵活性和可扩展性,是现代企业级 Java 应用程序开发的基石。理解并熟练使用这些配置文件,是成为 Spring 开发者...

    Spring-4.0.3jar包

    Spring框架是Java开发中的核心组件,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。Spring-4.0.3是Spring框架的一个...

    spring-security所需要的jar包,

    这个压缩包包含了Spring Security的核心组件,以及与其相关的 Acegi Security 框架的一些版本。这些jar包是构建和配置Spring Security环境所必需的。 1. **spring-security-core-2.0.5.RELEASE.jar**:这是Spring ...

    spring-aop-jar

    "spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨Spring AOP、相关jar文件以及它们在实际开发中的作用。 首先,我们来看一下提供的文件: 1. aopalliance.jar:这是一...

    spring-beans-3.0.xsd

    在Spring框架中,`spring-beans`是核心组件之一,它负责管理对象的生命周期和依赖关系。`spring-beans`的配置文件通常以`.xsd`为后缀,这些文件定义了XML Schema,用于验证Spring配置文件的语法和结构。本文将深入...

    spring-cglib-repack-3.2.0.jar和spring-objenesis-2.2.jar

    它们是Spring核心组件的重要组成部分,对于理解和调试Spring应用程序的内部工作原理至关重要。 至于"新建文件夹",这可能是指存放这两个库文件的目录,具体包含的文件内容可能包括这些库的源代码、文档、示例或者...

    官方原版完整包 spring-framework-5.3.3.RELEASE.zip

    Spring的核心特性包括依赖注入(Dependency Injection),使得组件之间的耦合度降低,提高了代码的可测试性和可维护性。Spring MVC是Spring框架的一部分,提供了一种用于构建Web应用的MVC(Model-View-Controller)...

    spring-flex-1.5.0.M2-dist.zip

    在Spring Flex 1.5.0.M2中,核心组件`spring-flex-1.5.0.M2.jar`扮演了关键角色,它是Spring和Flex集成的核心库,提供了诸如消息代理、配置支持和Spring服务代理等功能。这个库使得Flex客户端可以轻松地调用Spring...

    spring-boot 所有jar包

    - **spring-context.jar**、**spring-core.jar**等:Spring框架的基础组件。 - **spring-web.jar**、**spring-webmvc.jar**:用于Web开发的相关组件。 - **tomcat-embed-core.jar**等:内嵌Web服务器的实现。 - **...

Global site tag (gtag.js) - Google Analytics