IoC容器源码-容器的基本用法
来源:互联网 发布:入党申请书 知乎 编辑:程序博客网 时间:2024/05/22 15:29
学习Spring源码,我们应该从哪里学习呢?
提到Spring,你第一时间想到的是什么?无论是在面试中,还是在具体的项目中,IoC和AOP都是避不开的。而IoC更为重要,所以我决定从IoC开始学习。
IoC又如何开始学习呢?
深入理解DIP、IoC、DI以及IoC容器中说得很好:
控制反转(IoC):一种反转流、依赖和接口的方式(DIP的具体实现方式)。
依赖注入(DI):IoC的一种实现方式,用来反转依赖(IoC的具体实现方式)。
IoC容器:依赖注入的框架,用来映射依赖,管理对象创建和生存周期(DI框架)。
现在知道了,要从IoC容器开始学习IoC。
在正式学习Spring容器之前,我们先来复习下Spring最简单的用法。bean是Spring中最核心的东西。Spring相当于一个工厂,而bean就是产品,bean由IOC 容器负责配置、创建、管理。IOC 容器可以看成是 beans 关系的一个集合。下面是一个简单的例子。
定义bean
MyBean .java
public class MyBean {}
配置文件
MyBean .xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="myBean" class="container.MyBean"></bean></beans>
测试类MyBeanTest .java
public class MyBeanTest { @SuppressWarnings("deprecation") @Test public void myBeanTest(){ //需要spring-beans、spring-core的jar BeanFactory bf = new XmlBeanFactory(new ClassPathResource("MyBean.xml")); MyBean myBean = (MyBean)bf.getBean("myBean"); }}
测试结果
八月 02, 2017 3:04:40 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [MyBean]
Spring提供了两种类型的IoC容器实现:
- BeanFactory:IoC 容器的基本实现。
- ApplicationContext: 提供了更多的高级特性,是BeanFactory的子接口。
直接使用BeanFactory并不多见,在企业级的应用中更多的会使用ApplicationContext。在以后的文章中会详细介绍它们,这里只是一个简单的例子。
例子很简单,但你知道测试类中短短的一行代码BeanFactory bf = new XmlBeanFactory(new ClassPathResource("MyBean.xml"));
做了哪些操作吗?
如果你想了解,就继续向下看吧。
- IoC容器源码-容器的基本用法
- IOC容器的基本用法三
- IoC容器源码-容器的基础
- IoC 容器基本实例
- Spring的IoC容器基本工作原理
- 【Spring源码--IOC容器的实现】-- 综述
- Spring IOC 源码分析:容器的启动
- 【Spring源码--IOC容器的实现】-- 综述
- Srping源码深度解析(二)容器的基本用法
- Spring源码深度解析(二)容器的基本用法
- Vector容器的基本用法
- Docker 容器的基本用法
- 深入学习Spring源码---基本IOC容器初始化
- Spring源码学习IOC(5):IOC容器的依赖注入
- Spring源码学习IOC(6):IoC容器的高级特性
- 02.Spring IOC源码深度解析之容器的基本实现
- SPRING源码分析:IOC容器
- Spring源码分析----IOC容器的实现(IoC容器的初始化过程(定位、载入解析、注册))
- 阿里云服务器远程登陆
- poj3614
- HDU5033 building
- Spring(AbstractRoutingDataSource)实现动态数据源切换-- 转载
- simulink小技巧:如何将自己编写的模块集成到模块浏览器里面去
- IoC容器源码-容器的基本用法
- 金融安全期刊01:云战略下的安全思维转型与新认知
- Tensorflow框架下Faster-RCNN实践(一)——Faster-RCNN所需数据集制作(附代码)
- jQuery基础:动态生成表格和绑定事件
- Elasticsearch为记录添加时间戳timestamp
- 一篇讲解端口的很不错的一篇文章-------------
- iosprotocolbuffer
- 文件查找
- AC自动机模板