Spring相关API
ApplicationContext的继承体系
applicationContext
applicationContext:接口类型,代表应用上下文,可以通过其实例获得Spring容器中的Bean
ApplicationContext的实现类
1.ClassPathXmlApplicationContext(类路径)
它是从类的根路径下加载配置文件推荐使用这种(相对类路径)
2.****ApplicationContext(文件系统)
它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。(绝对地址)
是通过类加载器获取路径
3.AnnotationConfigApplicationContext(注解配置)
当使用注解配置容器对象时,需要使用此类来创建spring容器。它用来读取注解。
getBean()方法使用
public interface BeanFactory {
String FACTORY_BEAN_PREFIX = "&";
Object getBean(String var1) throws BeansException;
<T> T getBean(String var1, Class<T> var2) throws BeansException;
Object getBean(String var1, Object... var2) throws BeansException;
<T> T getBean(Class<T> var1) throws BeansException;
<T> T getBean(Class<T> var1, Object... var2) throws BeansException;
<T> ObjectProvider<T> getBeanProvider(Class<T> var1);
<T> ObjectProvider<T> getBeanProvider(ResolvableType var1);
boolean containsBean(String var1);
boolean isSingleton(String var1) throws NoSuchBeanDefinitionException;
boolean isPrototype(String var1) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException;
boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException;
@Nullable
Class<?> getType(String var1) throws NoSuchBeanDefinitionException;
@Nullable
Class<?> getType(String var1, boolean var2) throws NoSuchBeanDefinitionException;
String[] getAliases(String var1);
}
public object getBean(String name) throws BeansException{
assertBeanFactoryActive()
return getBeanFactory().getBean(name)
}
public<T> T getBean(Class<T> requireType)throws BeansException{
assertBeanFactoryActive();
return getBeanFactory().getBean(requireType);
}
其中,当参数的数据类型是字符串时,表示根据Bean的id从容器获得Bean实例,返回时Object,需要强转。
当参数的数据类型时Class类型时,表示根据类型从容器中匹配Bean实例,当容器中相同类型的Bean有多个时则此方法会报错。