Spring源码系列--BeanFactory接口注释翻译
来源:互联网 发布:dijkstra算法例题 编辑:程序博客网 时间:2024/06/05 13:29
访问spring的bean容器的根接口。是一个bean容器的最基本的客户端视图;进一步来说,ListableBeanFactory和ConfigurableBeanFactory接口可以用于特定的目的。
该接口可以被持有一些bean定义的对象们实现,这些bean被一个字符串名字唯一的标识。依赖于bean的定义,bean工厂将会返回一个包含对象的独立的实例(原型设计模式)或者一个单例的共享的实例(单例模式的优秀的替代品,在工厂范围内,实例是单例的)。返回的实例的类型将会依赖于bean工厂的配置:API也是同样的(个人理解:这句话的意思是返回得到API也依赖于bean工厂的配置)。从spring2.0开始,依赖于具体的应用上下文,提供了更多可用的作用范围(例如,在web环境中有request和session)。
要点在于,BeanFactory是应用组件的注册中心,并且集中了应用组件的配置(例如,不需要额外的对象来读取属性文件)。可以阅读Expert One-on-One J2EE Design and Development一书的第四节和第11节关于这种方法益处的讨论。
记住,与使用任何形式的例如BeanFactory查找这样的拉取配置的方式相比,依赖于依赖注入来使用setter方法或者构造器来配置应用对象通常是更好的(push配置)。spring的依赖注入功能可以使用BeanFactory接口和它的子接口来实现。
正常来说,一个BeanFactory会载入储存在配置源中的bean定义,然后使用beans包来配置这些bean。然而,一个实现可以按照需要在JAVA代码中直接返回它所创造的java对象。而定义是如何存储的则没有约束:LDAP,RDBMS,XML,属性文件等等均可。在beans当中鼓励bean之间相互引用。
与ListableBeanFactory中的方法相比,如果该接口是一个HierarchicalBeanFactory,那么该接口的所有操作都会检查父工厂。如果一个bean在这个工厂实例中没有发现,那么就会立即请求父工厂,在工厂实例中的bean会覆盖任何同名的父工厂中的bean。
bean工厂的实现应该尽可能地支持标准的bean周期接口的实现。下面是全部的初始化方法集合和他们的标准顺序:
- BeanNameAware’s {@code setBeanName}
- BeanClassLoaderAware’s {@code setBeanClassLoader}
- BeanFactoryAware’s {@code setBeanFactory}
- EnvironmentAware’s {@code setEnvironment}
- EmbeddedValueResolverAware’s {@code setEmbeddedValueResolver}
- ResourceLoaderAware’s {@code setResourceLoader}
(only applicable when running in an application context)
- ApplicationEventPublisherAware’s {@code setApplicationEventPublisher}
(only applicable when running in an application context)
- MessageSourceAware’s {@code setMessageSource}
(only applicable when running in an application context)
- ApplicationContextAware’s {@code setApplicationContext}
(only applicable when running in an application context)
- ServletContextAware’s {@code setServletContext}
(only applicable when running in a web application context)
- {@code postProcessBeforeInitialization} methods of BeanPostProcessors
- InitializingBean’s {@code afterPropertiesSet}
- a custom init-method definition
- {@code postProcessAfterInitialization} methods of BeanPostProcessors
向以下三位开发者致敬:
- @author Rod Johnson
- @author Juergen Hoeller
- @author Chris Beams
- Spring源码系列--BeanFactory接口注释翻译
- Spring源码阅读-BeanFactory子接口HierarchicalBeanFactory注释翻译
- Spring源码阅读-BeanFactory子接口AutowireCapableBeanFactory 注释翻译
- Spring源码阅读-BeanFactory注释翻译
- spring源码解读:BeanFactory接口
- Spring源码阅读-BeanFactory子接口ListableBeanFactory
- Spring源码学习之BeanFactory接口简述
- Spring源码由浅入深系列四 创建BeanFactory
- 【第二章:源码解析】Spring的BeanFactory的接口注解
- Spring源码解析-beanfactory
- Spring源码分析-beanFactory
- Spring BeanFactory源码解析
- Spring 源码阅读之BeanFactory
- Spring IoC源码之BeanFactory
- spring源码阅读之BeanFactory
- Spring BeanFactory getBean 源码剖析
- spring源码分析—BeanFactory
- spring中BeanFactory源码解读
- HDU
- DSO
- 二次采样
- [bzoj2186][Sdoi2008]沙拉公主的困惑(数论)
- 各种编程语言的注释形式
- Spring源码系列--BeanFactory接口注释翻译
- 【ZOJ3778】【C++心路历程40】【厨师】【贪心】【思路题】
- 欢迎使用CSDN-markdown编辑器
- python 初探状态机transitions库
- 初识Mybatis
- Java Socket总结
- Prim算法
- 【温故知新-Java虚拟机篇】5.字节码执行引擎
- 左值、右值、变量类型