spring学习笔记2分析和总结.docx
Spring学习笔记
Spring学习笔记
关键字:spring
BeanFactory和ApplicationBeanFactory的分类
org.springframework.io.ByteArray 定义内容由一组字节给点的资源org.springframework.core.io.ClassPath 定义可从classpath提取的资源org.springframework.core.io.Descriptive 定义包含资源描述符但是实际没有可读
资源的资源(不懂)
org.springframework.core.io.FileSystemResourc定e义可从文件系统提取的资源
org.springframework.core.io.InputStreamResourc定e义从输入流提取的资源
中的资源
org.springframework.web.portlet.context.PorletContextResou定rc义e
可用在portlet上下文
文中的资源源
org.springframework.web.context.support.ServletContextResour定ce义可用在servlet上下org.springframework.core.ioUrlResource 定义可以用在URL提取的资
ApplicationContext
ClassPathXmlApplicationContext从类路径中的xml文件载入上下文定义的信息FileSystemXmlApplicationContext从文件系统中的XML 文件载入上下文定义的信息XmlWebApplicationContext 从Web 系统中的Xml文件载入的定义信息
ApplicationContext和BeanFactory的作用几乎相同。只是前者比后者多了3个功能1,提供了文本信息解析工具,包括国家化(I18N)的支持
2,提供了载入文件资源的通用方法,如载入图片
3,可以像想注册为见提起的Bean发送事件
由于刚学,所以觉得还没发觉前面两个有什么特别的用处。但是最后一个真是相当不错的方法。在书中说,只有在资源很少的情况下,例如移动设备上才考虑用BeanFactory,由此可见ApplicationContext资源不比Beanfactory多多少。所以估计才企业开发中,可以完全不用考虑。
Bean的生命周期
实例化
设置属性值
3)调用BeanNameAware 的setBeanName ()方法4)抵用BeanFactoryAware的setBeanFactory()方法
5)调用ApplicationContextAware的setApplicationContex方t法6)抵用BeanPostProcessor的预初始化方法
调用InitializingBean
调用InitializingBean的afterPropertiesSet方法
调用定制的初始化方法
调用BeanPostProcessor的后初始化方法
----Bean可以被使用了
调用DisposableBean的destroy犯法11)抵用定制的销毁方法。
以上是一个ApplicationContext中的bean的生命周期,BeanFactory只比其少了红色的这个方法。
书中没有对各个方法有什么特别的阐述,但是就其方法名来猜测,我觉得是为了让Spring管理Bean
(是指实例化Bean之后)而做的一些工作。
装配Bean
????
?
?
?
?
?
?
?
?
?
??
??
??
??
??
??
??
??
??
??
??
??
??
??
!--
构造函数注入
--
beanid=duke
class=geniusgame.PoeticJuggler
constructor-argvalue=15/
constructor-argref=sonnet29/
!--
这是注入一个自定义对象的方法除了常用对象和基本数据类型之外的其他对象的注入
--
/bean
beanid=sonnet29
class=geniusgame.Sonnet29/bean
!--
属性注入
--
beanid=kenny
class=geniusgame.Instrumentalistinit-method=begin
destroy-method=a
?? propertyname=songvalue=沧海一声笑/
?? propertyname=instrumentref=piano/
?? /be