博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Spring - 04SpringAPI

Posted on 2020-11-17 21:35  Kingdomer  阅读(118)  评论(0编辑  收藏  举报

Spring - 04SpringAPI

 (1)ApplicationContext继承体系

ApplicationContext: 接口类型,代表应用上下文,可以通过其实例获得Spring容器中的Bean对象。

 

(2)ApplicationContext的实现类

ClassPathXmlApplicationContext:    从类的根路径下加载配置文件,推荐使用

FileSystemXmlApplicationContext:   从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。

AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类来创建Spring容器。它用来读取注解。

ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext app = new FileSystemXmlApplicationContext("E:\\JavaProgramLearn\\Spring\\01basic\\src\\main\\resources\\applicationContext.xml");

 

(3)getBean()方法使用

public interface BeanFactory {

    Object getBean(String var1) throws BeansException;

    <T> T getBean(String var1, @Nullable 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;
    // 省略其他代码
}

 

public abstract class AbstractApplicationContext extends DefaultResourceLoader implements ConfigurableApplicationContext {
    public Object getBean(String name) throws BeansException {
        this.assertBeanFactoryActive();
        return this.getBeanFactory().getBean(name);
    }

    public <T> T getBean(Class<T> requiredType) throws BeansException {
        this.assertBeanFactoryActive();
        return this.getBeanFactory().getBean(requiredType);
    }

其中,当参数的数据类型是字符串时,表示根据Bean的id从容器中获取Bean实例,返回是Object对象,需要强转。

当参数的数据类型是Class类型时,表示根据类型从容器中匹配Bean实例,当容器中相同类型的Bean有多个时,此方法会报错。

ApplicationContext app = new ClassPathXmlApplicationContext("xml文件")
app.getBean("id")
app.getBean(Class)