Spring -Ioc学习(1)
来源:互联网 发布:手机知乎怎么复制 编辑:程序博客网 时间:2024/06/06 11:49
- 1.在spring 中spring ioc提供了一个基本的javaBean容器,通过Ioc模式管理 依赖关系,并通过依赖注入和aop切面增强了为javaBean这样的POJO对象赋予事务管理、生命周期管理等基本功能。
- 2.ioc的注入实现中有1.接口注入;2.setter注入;3.构造器注入。
- 3.Ioc容器中有两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这个系列容器只实现了容器的最基本的功能;二是ApplicationContex应用上下文,是高级形态。
- 3.1 IOC容器的主要接口
1.beanFactory到hierarchicalBeanFactory,到configurableBeanFactory,beanFactory接口定义了基本的Ioc容器规范,包含getBean()基本方法,hierarchicalBeanFactory增加了getParentBeanFactory()的接口功能,使beanFactory局部双亲Ioc容器的管理功能。configurableBeanFactory定义了对beanFactory的一些配置。
2.applicationContext应用上下文接口为核心的接口,细化了许多beanFactory接口的定义。 - 3.2 beanFactory应用场景
BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂
FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身, 如果要获取FactoryBean对象,可以在id前面加一个&符号来获取。
(1).Object getBean(Stringname) throws BeansException;getBean是IoC容器中最重要的方法,通过该方法可以取得IoC容器中管理的Bean,Bean的取得是通过指定名字来进行所引的。(2). <T> T getBean(String name, Class<T> requiredType) throws BeansException;根据指定的名字和类型取得IoC容器中管理的Bean,和getBean(String name)方法类似,只是多提供了一个类型安全验证机制。(3). <T> T getBean(Class<T> requiredType) throws BeansException;根据指定的类型取得IoC容器中管理的Bean,该方法根据指定的类型调用ListableBeanFactory(BeanFactory下的)中的取得Bean方法,但是也可能根据给定的类型调用通过名字取得Bean的方法。(4). Object getBean(String name, Object... args) throws BeansException;该方法重载了getBean(String name)方法,可变参数主要用来指定是否显示使用静态工厂方法创建一个原型(prototype)Bean。(5). boolean containsBean(String name);该方法让用户判断IoC容器中是否含有指定名字的Bean。(6). boolean isSingleton(String name) throws NoSuchBeanDefinitionException;该方法用来查询指定名字的Bean是否是单态类型(singleton)的Bean。(7). boolean isPrototype(String name) throws NoSuchBeanDefinitionException;该方法用来查询指定名字的Bean是否是原型(prototype)类型的Bean。(8). boolean isTypeMatch(String name, Class targetType)throws NoSuchBeanDefinitionException;该方法用来查询指定名字的Bean的class类型是否支持特定的class类型。(9). Class<?> getType(String name) throws NoSuchBeanDefinitionException;该方法用来查询指定名字的Bean的class类型。(10). String[] getAliases(String name);该方法用来查询指定名字的Bean的所有别名。
- 3.3 编程式创建Ioc容器
1.创建Ioc配置文件的抽象资源,抽象资源包含beanDefinition的定义信息。
2.创建beanFactory.
3.创建一个载入beanDefinition的读取器,返回一个回调配置给beanFactory。
4.从定义好的资源位置读入配置信息,完成解析过程。 - 3.4 ApplcationContext的应用场景
好处:1.支持不同的信息源;2.访问资源;3.支持应用事件。4.在applicationContext中提供附加服务。 - 4.Ioc容器的初始化过程
1..启动包含beanDefinition的resource定位;2.载入;3.注册 4.1 resource的定位,指的是beanDefinition的资源定位,它是由resourceLoader通过统一的resource接口来完成。
4.2 beanDefinition的载入,用户定义好的bean表示成ioc容器内部的数据结构。
载入过程相当于把定义的beanDefinition在Ioc容器中转换成一个spring内部表示的数据结构的过程。如果在创建容器前,已经有容器存在,需要把已有的容器销毁和关闭。- 4.3 向ioc容器注册这些beanDefinition的过程。
阅读全文
0 0
- Spring -Ioc学习(1)
- Spring学习笔记 (1)--- IoC
- spring-ioc 学习笔记1
- Spring-IOC-学习笔记(1)
- Spring杂项学习(IOC)
- spring IoC学习 ------IoC基本概念
- Spring学习笔记(4)--------IoC学习
- Spring 原理学习-----IoC容器初始化(1)
- Spring学习笔记之基础、IOC、DI(1)
- Spring IoC学习笔记(1):注解配置Bean
- spring学习笔记(1)IOC核心原理解析
- spring 学习1——理解IOC
- spring学习-1-IOC和DI
- Spring 学习系列-----(二)IoC思想
- Spring源码学习(一)------ IoC
- Spring源码学习(一)------ IoC
- Spring源码学习(一)------ IoC
- Spring IOC核心源码学习(一)
- vld内存泄漏检查工具不能显示内存泄漏文件名与行号
- 线程池-invokeAll的使用
- java内存溢出问题处理
- springMVC笔记
- spring AOP
- Spring -Ioc学习(1)
- 逻辑混乱--html与css学习小结
- Elasticsearch Reference 5.5 中文翻译3
- Another MySQL daemon already running with the same unix socket
- HTML5追加HTML5本地存储详解
- windows网络共享访问centos samba服务端出现权限问题不能访问解决
- Spring-AOP
- 如何在DataFrame索引某一行
- javascript 递归方法求斐波那契额前n项和