容器是Spring框架的核心,Spring容器就是一个巨大的工厂。Spring容器使用Ioc管理所有组成应用系统的组件。
Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例。
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。它们都可以代表Spring容器。Spring容器是生成Bean实例的工厂,并管理容器中的Bean。Bean是Spring管理的基本单元。
创建BeanFactory实例时,必须使用Spring容器管理的Bean详细配置信息(XML配置文件)。XML配置文件通常使用Resource对象传入。
Resource接口是Spring提供的资源访问接口,通过使用该接口,Spring能以简单,透明的方式访问子盘,类路径,已经网络上的资源。
大部分Java EE应用,在启动Web应用时自动加载Application实例。对于独立的应用程序,可通过如下方法来实例化BeanFactory。
1.
//搜索当前文件路径下的beans.xml文件,创建Resource对象
InputStreamResource isr = new FileSystemResource("beans.xml");
//以Resource对象作为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(isr);
2.
//搜索类加载路径,以类加载路径下的beans.xml文件创建Resource对象
ClassPathResource res = new ClassPathResource("beans.xml");
//以Resource对象为参数,创建BeanFactory实例
XmlBeanFactory factory = new XmlBeanFactory(res);
ApplicationContext允许以声明式方式操作容器,无需手动创建它。可利用如ContextLoader得支持类,在Web应用启动时自动创建ApplicationContext。当然,也可以采用编程方式创建ApplicationContext.
除了提供BeanFactory所支持的全部功能外,ApplicationContext还有如下额外功能:
1.ApplicationContext继承MessageSource接口,因此提供国际化支持。
2.资源访问,比如URL和文件
3.事件机制
4.载入多个配置文件。
ApplicationContext经常用到的三个实现:
1.ClassPathXmlApplicationContext:从类路径中的XML文件载入上下文定义信息。把上下文定义文件当成类路径资源。
2.FileSystemXmlApplicationContext:从文件系统中的XML文件载入上下文定义信息。
3.XmlWebApplicationContext:从Web系统中的XML文件载入上下文定义信息。
BeanFactory延迟加载所有的Bean,知道getBean()方法被调用时,Bean才被创建。
当系统创建ApplicationContext容器时,默认会预初始化所有singleton Bean (prototype类型Bean当需要的时候才会创建)。
- 浏览: 48854 次
- 性别:
- 来自: 北京
文章分类
最新评论
发表评论
-
redis过期策略
2023-06-19 15:19 83注:本文主要参考自《Redis设计与实现》 1、设置 ... -
Spring Bean生命周期
2023-06-19 15:03 96https://baijiahao.baidu.com/s ... -
Java算法面试题 一个顺子带一对
2019-03-24 16:54 438https://blog.csdn.net/qq_357422 ... -
Spring AOP实现后台管理系统日志管理
2019-02-27 23:08 388https://www.jianshu.com/p/a6ba3 ... -
linux中swap分区的作用
2018-12-23 15:39 826https://blog.csdn.net/mengxingy ... -
接口和抽象类什么时候使用比较合适
2018-10-23 15:06 474https://blog.csdn.net/benbenx ... -
单例模式的八种写法比较
2018-09-26 16:02 336https://www.cnblogs.com/zhaoyan ... -
Spring注解详解
2017-05-26 18:55 468http://blog.csdn.net/xyh820/art ... -
SQL 面试题目及答案
2017-05-26 18:58 483学生成绩表(stuscore):姓名:name 课程 ... -
Spring中ApplicationContext和beanfactory区别
2017-05-24 10:14 514http://blog.csdn.net/u011202334 ... -
Java三大器之监听器(Listener)的工作原理和代码演示
2017-05-23 18:39 492http://blog.csdn.net/reggergdsg ... -
Java三大器之拦截器(Interceptor)的实现原理及代码示例
2017-05-23 18:38 724http://blog.csdn.net/reggergd ... -
Dubbo详细资料
2017-05-22 18:13 383http://dubbo.io/User+Guide-zh.h ... -
(转)Oracle执行计划详解
2017-05-17 17:26 478http://blog.itpub.net/24478467/ ... -
(转)Oracle中Hint深入理解
2017-05-17 17:19 490http://czmmiao.iteye.com/blog/1 ... -
(转)数据块BLOCK的解释
2017-05-17 16:16 591数据块(DATA BLOCK)是Oracle最小的逻辑组成 ... -
(转)TCP/IP协议 三次握手与四次挥手
2017-05-15 18:44 473TCP(Transmission Control Prot ... -
如何理解HTTP协议的“无连接,无状态”特点?
2017-05-15 17:36 511Http是一个属于应用层的面向对象的协议,HTTP 协议一 ... -
(转) java 代码重构
2017-05-15 16:06 378几天前的一次上线,脑残手抖不小心写了bug,虽然组里的 ... -
redis持久化方法对比分析
2017-05-12 11:39 329http://www.cnblogs.com/Fairy- ...
相关推荐
然而,在某些情况下,我们可能需要在非Spring注解的类中访问Spring容器中的Bean,或者在这些类中使用YAML配置文件中的配置信息。本篇将详细介绍如何在这样的场景下实现这一目标。 首先,让我们来理解如何在非Spring...
spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听
标题中的“Spring简单模拟Spring容器”意味着我们将探讨Spring框架的核心特性——IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入),以及如何通过编程方式模拟Spring容器的工作原理。...
Spring容器是Spring框架的核心组成部分,它负责管理对象的生命周期和对象间的依赖关系。在Java开发中,Spring容器(也称为ApplicationContext或BeanFactory)扮演着重要角色,它通过控制反转(Inversion of Control,...
本主题将深入探讨“简单Spring容器实现”,基于提供的标签“源码”和“工具”,我们将聚焦于Spring容器的原理及其简易实现。下面,我们先来理解Spring容器的核心概念,然后逐步探索其内部机制,并通过一个名为...
基于接口、抽象类实现不停机动态调整代码的目的,将修改后的源码文件放置于指定目录下,读取文件后执行动态编译方法,即可将该类重新加载,新的类可以在Spring容器从新注册,且仅在当前窗口生效。如果重启了服务或...
Spring容器是Spring框架的核心组成部分,它负责管理对象的生命周期和对象之间的依赖关系。Spring容器的主要职责是读取配置元数据,创建和组装Bean,并提供Bean的完整生命周期管理。本篇内容将深入探讨Spring容器的...
"深度解析spring容器管理bean"这一主题,旨在深入理解Spring如何通过反射机制、依赖注入(DI)以及XML或Java配置来实现对Bean的生命周期管理。 首先,Spring容器主要有两种类型:DefaultListableBeanFactory和...
### 获取Spring容器的方法详解 在Java开发中,Spring框架因其强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect Oriented Programming, AOP)功能而被广泛使用。掌握如何获取Spring容器对于管理和...
本实例将带你深入理解Spring容器的基本使用,通过实际操作来帮助你快速上手。 1. **Spring容器概述** Spring容器是Spring框架的核心,负责管理对象的生命周期和依赖关系。主要有两种类型的容器:BeanFactory和...
BeanFactoryPostProcessor接口是Spring框架提供的一个接口,用于扩展Spring容器的功能。该接口只有一个方法`postProcessBeanFactory`,该方法在容器加载完成之后被调用,可以用来改变容器中的配置或做一些初始化工作...
初始化和销毁方法在 Spring 容器中,我们可以通过配置来指定 Bean 在被创建后或销毁前需要执行的方法。这些方法可以用于执行初始化设置或者清理工作。 3.1. 初始化方法当我们想要在 Bean 创建完成后执行特定的初始...
### 获取Spring容器的相关知识点 #### 一、Spring容器简介 Spring框架的核心是其IoC容器,也称为Spring容器。Spring容器负责管理应用对象的生命周期、配置以及装配过程。Spring提供了两种主要类型的容器: 1. **...
Spring容器中IOC Spring容器中IOC(Inverse of Control,控制反转)是Spring框架的核心功能之一。IOC容器是Spring Framework的核心组件之一,负责管理应用程序中的对象实例,控制对象的生命周期,并提供依赖注入的...
### Spring容器研究 #### 一、依赖注入 依赖注入(Dependency Injection, DI)是一种软件设计模式,用于降低组件间的耦合度。通过依赖注入,组件之间的依赖关系可以在运行时由容器来决定,而不是在编译期间硬编码...
Spring容器是Spring框架的核心组成部分,它负责管理和控制应用程序中的对象,这些对象被称为Bean。Spring容器主要有两种接口形式:BeanFactory和ApplicationContext,后者是前者的子接口。这两种接口都是用来表示...
Spring容器是Spring框架的核心组成部分,它负责管理对象的生命周期和对象之间的依赖关系。在这个自己实现的简单Spring容器项目中,我们可以深入理解Spring的核心原理,并学习如何构建一个基础的依赖注入(Dependency...
在Spring框架中,自动扫描(Auto-Component Discovery)是一种便捷的方式,它允许开发者无需显式配置每个bean,就能将类路径下(classpath)的特定包及其子包中的组件(即带有特定注解的类)纳入Spring容器进行管理...
- 使用`PlatformTransactionManager`接口的实现,如`DataSourceTransactionManager`,并将其注册到Spring容器中。 5. **扫描Mapper接口** - 通过`MapperScannerConfigurer`或`@MapperScan`注解,扫描包含MyBatis ...
在Spring源代码解析的第一部分,我们将聚焦于IOC容器,特别是BeanFactory接口,它是所有Spring容器的基础。 BeanFactory接口是Spring的基石,它定义了基本的容器操作,如获取Bean、检查Bean是否存在、确定Bean的...