一、创建容器(2种)
方式一:加载类路径下的配置文件
ClassPathXmlApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
方式二:从文件系统中加载配置文件
FileSystemXmlApplicationContext
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\workspace\\spring\\spring_10_container\\src\\main\\resources\\applicationContext.xml");
不管哪种方式都能加载多个配置文件
加载多个配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml","bean2.xml");
二、获取bean(3种)
方式一:使用bean名称获取
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
方式二:使用bean名称获取并指定类型
BookDao bookDao = ctx.getBean("bookDao",BookDao.class);
方式三:使用bean类型获取
BookDao bookDao = ctx.getBean(BookDao.class);
注意:按类型查找容器中这个类型的bean只能有一个,多个的话会报错。
三、容器类层次结构图
四、BeanFactory初始化
类路径加载配置文件
Resource resources = new ClassPathResource("applicationContext.xml"); BeanFactory bf = new XmlBeanFactory(resources); BookDao bookDao = bf.getBean("bookDao",BookDao.class); bookDao.save();
BeanFactory创建完毕后,所有bean均为延迟加载