Spring读书笔记(一)之BeanFactory

来源:互联网 发布:js分页原理 编辑:程序博客网 时间:2024/06/05 14:19
一、BeanFacotry

  访问一个Spring bean容器的根接口。这是一个Bean容器基本客户端视图;进一步的接口如ListableBeanFactory和configurablebeanfactory供特定用途。

  此接口由包含许多bean定义的对象来实现,每个对象都有唯一的字符串名称标识。根据bean定义,工厂将返回被容器包含的对象(原型设计模式)的任何一个独立实例,或者单个共享实例(一个较好选择的单例设计模式,其中实例是工厂范围内的一个单例)。将返回哪种类型的实例取决于bean工厂配置:API是相同的。自Spring2以来,根据具体的应用程序上下文(例如Web环境中的“请求”和“会话”范围)可获得更多的作用域。

 

 

package org.springframework.beans.factory; public interface BeanFactory {     /**     * 用来引用一个实例,或把它和工厂产生的Bean区分开,就是说,如果一个FactoryBean的名字为a,那么,$a会得到那个Factory     */    String FACTORY_BEAN_PREFIX = "&";     /*     * 四个不同形式的getBean方法,获取实例     */    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;     boolean containsBean(String name); // 是否存在     boolean isSingleton(String name) throws NoSuchBeanDefinitionException;// 是否为单实例     boolean isPrototype(String name) throws NoSuchBeanDefinitionException;// 是否为原型(多实例)     boolean isTypeMatch(String name, Class<?> targetType)            throws NoSuchBeanDefinitionException;// 名称、类型是否匹配     Class<?> getType(String name) throws NoSuchBeanDefinitionException; // 获取类型     String[] getAliases(String name);// 根据实例的名字获取实例的别名 }