Spring学习之Bean详解
来源:互联网 发布:手机编程入门自学 编辑:程序博客网 时间:2024/05/02 04:41
一、理解反向控制(IOC)
依赖注入(di):比IOC更好的名字。获得依赖对象的方式反转了。
IOC应用:ioc或者说di,还可以达到解耦的目的
二、装配Bean
(1)容纳你的bean
bean工厂:最简单的容器,提供了基础的依赖 注入支持。
创建各种类型的Bean.应用上下文(ApplicationContext):建立在bean工厂基础之上,提供系统架构服务。
<span style="font-size:14px;"><bean scope=“singleton|prototype|request|session” /> singleton: 单例 默认值prototype: 原型 request: 一次请求有效( java web开发中)session: session级有效(java web开发中)</span>
(2)工厂设计模式
创建分发各种bean。配置好它们之间的写作关系,参与bean的生命周期。
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));bean工厂只把bean的定义信息载进来,用到的时候才实例化。
factory.getBean("mybean");就可得到一个bean。
(3)使用应用上下文
ApplicationCotext,spring更加高级的容器。功能强大:1.提供文本信息解析工具,包括对国际化支持。
2.提供载入文件资源的通用方法,如图片。
3.可以向注册为监听器的bean发送事件。
在很少的情况下,使用BeanFactory,如在移动设备。
三种经常用到的实现:
<span style="font-size:14px;">1.ClassPathXmlApplicationContext:从类路径中加载。2.FileSystemXmlApplicationContext:从文件系统加载。3.XmlWebApplicationContext:从web系统中加载。ApplicationContext context = new FileSystemXmlApplicationContext(" c:\foo.xml");ApplicationContext context = new ClassPathXmlApplicationContext("foo.xml");</span>除了应用上下文提供的附加功能外,应用上下文与bean工厂的另一个重要区别是关于单例bean如何被加载。
bean工厂延迟加载所有bean,直到getBean()方法被调用。
应用上下文会(applicationContext)在启动后预载入所有单例bean.这样可确保应用不需要等待他们被创建。
(4)bean的生命周期
bean被载入到容器中时,他的生命周期就开始了。:
1.容器寻找bean的定义信息并实例化。
2.使用依赖注入,spring按bean定义信息配置bean的所有属性。
3.若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递bean的ID。
4.若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory()方法传入工厂自身。
5.若BeanPostProcessor(bean后置处理器)和bean关联,则它们的 postProcessBeforeInitialization()方法被调用。 [过滤器举例理解]
6.若bean指定了ini-method方法、,它将被调用。
7.最后,若有BeanPostProcessor和bean关联,则它们的 postProcessAfterInitialization()方法被调用。
将bean从工厂中删掉有两种方法:
1.若bean实现了DisposableBean接口, distroy()方法被调用。
2.如果指定了定制的销毁方法,就调用这个方法。
- Spring学习之Bean详解
- Spring之bean的详解
- spring之bean学习笔记
- Spring学习之工厂Bean
- Spring架构详解之Bean组件详解
- spring学习之---spring容器中的Bean
- Spring学习笔记之Bean定义继承
- Spring学习之Bean装配、生命周期。。
- Spring学习笔记之Bean装配
- Spring学习笔记之Bean的装配
- Spring框架学习之Bean的生命周期
- Spring学习之Bean的生命周期
- Spring学习笔记之自动化装配Bean
- Spring学习笔记之配置bean
- 2.Spring学习笔记之装配Bean
- Spring学习笔记之bean和BeanFactory
- Spring学习笔记之---bean的生命周期
- Spring学习之Bean的装配
- 动态载入js、css文件
- 通过修改文件字符对单一文件进行简单加密
- 第八周 项目2 加班费,要不要?
- VS2010环境下,C#快捷键
- NandFlash详述
- Spring学习之Bean详解
- 多种排序算法
- 编程:员工的加班费发放
- FFMPEG视音频编解码零基础学习方法
- 史上最难游戏(IOS源码)
- android 动态添加的checkbox设置间距大小
- 你看得懂的海明码校验和纠错原理(一)
- 运行gem5报错 NameError: name 'process' is not defined
- 第8周项目3(1)用if-else结构求多分支结构求函数值