ApplicationContext: 接口类型,代表应用上下文,可以通过其实例获得Spring容器中的Bean对象。
ClassPathXmlApplicationContext: 从类的根路径下加载配置文件,推荐使用
FileSystemXmlApplicationContext: 从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。
AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类来创建Spring容器。它用来读取注解。
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext app = new FileSystemXmlApplicationContext("E:\\JavaProgramLearn\\Spring\\01basic\\src\\main\\resources\\applicationContext.xml");
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)
原文:https://www.cnblogs.com/kingdomer/p/13941290.html