Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?

quote:Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么? (IT公司面试手册,可以多看看)

spring 框架中核心组件有三个:Core、Context 和 Beans。其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory。

Spring 解决了的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,也就是Spring的依赖注入机制。这个注入机制是在Ioc 容器中进行管理的。

Bean 组件是在 Spring 的 org.springframework.beans 包下。这个包主要解决了如下功能:Bean 的定义、Bean 的创建以及对 Bean 的解析。对 Spring 的使用者来说唯一需要关心的就是 Bean 的创建,其他两个由 Spring 内部机制完成。 Spring Bean 的创建采用典型的工厂模式,他的顶级接口是 BeanFactory。

BeanFactory 有三个子类:ListableBeanFactory、HierarchicalBeanFactory 和 AutowireCapableBeanFactory。但是从上图中我们可以发现最终的默认实现类是 DefaultListableBeanFactory,他实现了所有的接口。那为何要定义这么多层次的接口呢?查阅这些接口的源码和说明发现,每个接口都有他使用的场合,它主要是为了区分在 Spring 内部在操作过程中对象的传递和转化过程中,对对象的数据访问所做的限制。例如 ListableBeanFactory 接口表示这些 Bean 是可列表的,而 HierarchicalBeanFactory 表示的是这些 Bean 是有继承关系的,也就是每个 Bean 有可能有父 Bean。AutowireCapableBeanFactory 接口定义 Bean 的自动装配规则。这四个接口共同定义了 Bean 的集合、Bean 之间的关系、以及 Bean 行为。

Bean 的定义就是完整的描述了在 Spring 的配置文件中你定义的 <bean/> 节点中所有的信息,包括各种子节点。当 Spring 成功解析你定义的一个 <bean/> 节点后,在 Spring 的内部他就被转化成 BeanDefinition 对象。以后所有的操作都是对这个对象完成的。Bean 的解析过程非常复杂,功能被分的很细,因为这里需要被扩展的地方很多,必须保证有足够的灵活性,以应对可能的变化。Bean 的解析主要就是对 Spring 配置文件的解析。

时间: 2024-10-22 10:28:17

Spring最核心的功能是什么?使用Spring框架的最核心的原因是什么?的相关文章

关于Spring核心容器功能

一句话总结:Spring框架的核心容器能为我们创建对象 spring框架是一种粘合层框架,它是用来整合web层框架和持久层框架的spring可以支持我们各个层级包括数据展示层,业务层和持久层都有对应的解决方案.spring核心容器core container提供了创建对象管理对象的功能core container包括bean,core,context,Expression Languagebean提供了整个框架最基本的部分,包括了IOC控制反转和依赖注入Bean的创建用到了工厂模式:父类是Bea

spring jar 包 用处功能:

自己积累的: @   spring-context-3.0.5.RELEASE.jar :主要用于 spring程序中加载类 ApplicationContext 用.eq: ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:schedul-job.xml"); @   spring-context-support-3.0.5.RELEASE.jar:主要用于spring job 定时器类(Met

Struts+Hibernate+Spring实现用户登录功能

Struts+Hibernate+Spring实现用户登录功能 通过登录案例实现三大框架之间的整合,登录功能是任何系统和软件必不可少的一个模块,然而通过这个模块来认识这些复杂的框架技术,理解数据流向和整个设计思路是相当容易的.只有在掌握了这些小模块的应用后,才能轻松的去研究和设计出更有创意的,更加严密的系统. 本人通过学习,实现了这个小功能,现在将实现思想和过程总结如下.希望各位大神朋友多多审查,有什么不到位的地方,请通过邮件告诉我([email protected]),在此表示感谢:新手朋友,

独家全功能USB2.0开发板,最强CY7C68013A-128核心板,超强资料不断提供更新服务

       学习USB开发再也不用买书啦,也不用花费重金去上培训班啦,IFLabs开创USB学习开发新模式,你所需要的知识.技术.范例.代码等等统统都在这里.IFLabs打造全网最丰富.最权威的USB开发平台和资料. 热卖的IFLabs精品USB2.0核心板套件再升级,全网独家推出最强.最全功能的Cypress USB 2.0 CY7C68013A-128AXC核心板开发板,全网最全配件和全网最全开发资料.只需这一次投入,即可实现USB接口开发的从入门到精通!并且有长期的全网最全开发手册更新支

详解电脑核心安全功能

用户帐户控制Windows Vista的核心安全功能之一,同时它也是Vista众多安全功能中争议最大的功能.不论你是否喜欢这一功能,为了平衡安全性和用户操作的友好度,你都应该详细了解这一功能. 降低了以管理员账户登录所带来的风险我们经常看到一个常见的现象:如果用户拥有一个管理员级别的账号,还有一个普通帐号,那么大多数用户都喜欢采用管理员帐号登录系统,尽管他们登录系统后可能只是做一些不需要管理员权限的简单工作.采用管理员帐号登录有时候会比较方便,而人们总是把方便放在第一位. 以管理员身份登录所带来

spring中各jar功能及jar包之间的依赖关系

(1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类. (2) spring-beans.jar 这个jar文件是所有应用都要用到的,它包含访问配置文件.创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类.如果应用只需基本的IoC/DI支持,引入spri

spring (由Rod Johnson创建的一个开源框架)

你可能正在想"Spring不过是另外一个的framework".当已经有许多开放源代码(和专有)J2EEframework时,我们为什么还需要Spring Framework? Spring是独特的,因为若干个原因: 它定位的领域是许多其他流行的framework没有的.Spring致力于提供一种方法管理你的业务对象. Spring是全面的和模块化的.Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的.因此从你的学习中,你可得到最大的价值.例如

Spring Framework------&gt;version4.3.5.RELAESE-----&gt;Reference Documentation学习心得-----&gt;Spring Framework中的spring web MVC模块

spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可以被用于开发web网站 spring web mvc 实现web网站的原理,如下图: 2.使用spring web mvc开发web应用的步骤 step1:在自己的工程中引入spring web mvc模块 step2:配置spring web mvc模块 中的DispatcherServlet,告

Spring读书笔记-----部署我的第一个Spring项目

一.Spring介绍 Spring是一个轻量级的Java EE容器,它也是一种从实际需求出发,着眼于轻便,灵活,易于开发,易测试和易部署的轻量级开发框架.Spring它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率. Spring为企业应用的开发提供了一个轻量级的解决方案.该方案包括:基于依赖注入的核心控制,基于AOP的声明式的事务管理,与持久层技术的耦合,以及优秀的Web MVC框架等.它致力于为Java EE 应用各层的解决方案. 使用S