BeanFactory:定义获取bean及bean的各种属性
-
AutowireCapableBeanFactory 添加集成其他框架功能.如果集成WebWork则可以使用Spring对Actions等进行管理.
-
HierarchicalBeanFactory 提供父容器的访问功能
-
ConfigurableBeanFactory 如名,提供factory的配置功能,眼花缭乱好多api
-
ConfigurableListableBeanFactory 集大成者,提供解析,修改bean定义,并与初始化单例.
-
ListableBeanFactory 提供容器内bean实例的枚举功能.这边不会考虑父容器内的实例.
public interface BeanFactory { //指定factoryBean的前缀,Bean工厂里面的实例任然有可能是一个BeanFactory,如果是个BeanFactory //则可以通过如下方法返回一个BeanFactory,factory.getBean("&beanfactoryName"); String FACTORY_BEAN_PREFIX = "&"; //返回特定名字的实例 Object getBean(String name) throws BeansException; //返回特定名称及特定类型的实例T getBean(String name, Class requiredType) throws BeansException; //返回特定类型的bean实例,如果不存在或存在不止一个均报错 T getBean(Class requiredType) throws BeansException; //根据名字及bean创建时候的参数创建bean Object getBean(String name, Object... args) throws BeansException; //根据特定的construct args创建prototype的bean T getBean(Class requiredType, Object... args) throws BeansException; //判断是否包含特定名字的实例 boolean containsBean(String name); //判断是否是单例的 boolean isSingleton(String name) throws NoSuchBeanDefinitionException; //判断是否是多例的 boolean isPrototype(String name) throws NoSuchBeanDefinitionException; //判断特定名字的实例和对应的type是否匹配 boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException; //判断特定名字的实例和对应的type是否匹配 boolean isTypeMatch(String name, Class typeToMatch) throws NoSuchBeanDefinitionException; //返回特定名称bean的类型 Class getType(String name) throws NoSuchBeanDefinitionException; //返回特定name bean的别名 String[] getAliases(String name);}复制代码