BeanFactory是Spring體系中的一個最底層的容器,提供了獲取bean以及bean的屬性的方法。ide
// 用於取FactoryBean String FACTORY_BEAN_PREFIX = "&";
Object getBean(String name) throws BeansException; <T> T getBean(String name, Class<T> requiredType) throws BeansException; Object getBean(String name, Object... args) throws BeansException; <T> T getBean(Class<T> requiredType) throws BeansException; <T> T getBean(Class<T> requiredType, Object... args) throws BeansException;
getBean方法,主要經過bean的名稱、bean的名稱+類型、bean的名稱+構造參數、bean的類型、bean的類型+構造參數來獲取bean。函數
<T> ObjectProvider<T> getBeanProvider(Class<T> requiredType); <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType);
經過bean的類型、ResolvableType獲取ObjectProvider。ui
boolean containsBean(String name); boolean isSingleton(String name) throws NoSuchBeanDefinitionException; 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的類型、獲取別名。
這幾個比較經常使用,咱們就大概過一下。spa
做用於隱式的構造函數注入,也就是說,在構造方法中,不用@Autowired也能夠注入成功。
主要的方法有兩個:3d
主要是對泛型的處理,使對泛型的操做更簡單code