Spring Bean工厂继承关系和源码分析
2015-11-30 20:47
441 查看
Bean工厂继承关系图
最上层的接口BeanFactory
该接口定义了获取获取Bean的方法。判断是否存在某个Bean。
ListableBeanFactory为可列表的BeanFactory,可以枚举所有的Bean而不是一个一个获取Bean通过Bean name。
通过上面的方法就能获取到Bean工厂中的Bean
HierarchicalBeanFactory 接口定义了工厂的分层,同样继承了BeanFactory。
最上层的接口BeanFactory
package org.springframework.beans.factory; import org.springframework.beans.BeansException; import org.springframework.core.ResolvableType; public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String name) throws BeansException; <T> T getBean(String name, Class<T> requiredType) throws BeansException; <T> T getBean(Class<T> requiredType) throws BeansException; Object getBean(String name, Object... args) throws BeansException; <T> T getBean(Class<T> requiredType, Object... args) throws BeansException; boolean containsBean(String name); boolean isPrototype(String name) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String name, Class<?> typeToMatch) throws NoSuchBeanDefinitionException; Class<?> getType(String name) throws NoSuchBeanDefinitionException; String[] getAliases(String name); }
该接口定义了获取获取Bean的方法。判断是否存在某个Bean。
ListableBeanFactory为可列表的BeanFactory,可以枚举所有的Bean而不是一个一个获取Bean通过Bean name。
public interface ListableBeanFactory extends BeanFactory { boolean containsBeanDefinition(String beanName); int getBeanDefinitionCount(); String[] getBeanDefinitionNames(); String[] getBeanNamesForType(ResolvableType type); String[] getBeanNamesForType(Class<?> type); String[] getBeanNamesForType(Class<?> type, boolean includeNonSingletons, boolean allowEagerInit); <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException; <T> Map<String, T> getBeansOfType(Class<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException; String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType); Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType) throws BeansException; <A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType) throws NoSuchBeanDefinitionException; }
通过上面的方法就能获取到Bean工厂中的Bean
HierarchicalBeanFactory 接口定义了工厂的分层,同样继承了BeanFactory。
BeanFactory getParentBeanFactory(); //获取父工厂 boolean containsLocalBean(String name);//根据Bean name判断本地工厂是否存 //在Bean
相关文章推荐
- 在Eclipse调试Weblogic上的web项目
- java语法基础思维导图
- 15-11-30 java 类和对象的理解(下)
- 基本Java数据类型
- java学习:JFrame面板切换时(用代码释放某个JFrame)
- Java WebService 简单实例
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【控制文件上传和下载】
- 关于java中的值传递问题
- 子类和父类构造方法的执行先后问题
- LeetCode 160 : Intersection of Two Linked Lists (Java)
- NLPIR中文分词 java
- Spring MVC中ajax返回json数据
- Java反射机制
- Eclipse 插件安装方式
- Java基础语法,基本数据类型
- 杭电ACM1060 Leftmost Digit
- 为树莓派安装配置openJDK
- 杭电ACM1098 Ignatius's puzzle
- eclipse--build path功能总结
- java序列化和反序列化