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有多个时则此方法会报错。

posted @ 2021-11-26 14:17  不会笑的孩子  阅读(147)  评论(0编辑  收藏  举报