Spring核心容器

创建容器

  • 方式一:类路径加载配置文件。
1
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
  • 方式二:文件路径加载配置文件。
1
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
  • 加载多个配置文件。
1
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml");

获取bean对象

  • 方式一:使用bean名称获取。

弊端:需要强制类型转换。

1
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
  • 方式二:使用bean名称获取并指定类型

推荐使用。

1
BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
  • 方式三:使用bean类型获取。

弊端:如果IOC容器中同类型的Bean对象有多个,此处获取会报错。

1
BookDao bookDao = ctx.getBean(BookDao.class);

容器类层次结构

content-741

BeanFactory

  • 类路径加载配置文件。
1
2
3
4
Resource resources = new ClassPathResource("applicationContext.xml");
BeanFactory bf = new XmlBeanFactory(resources);
BookDao bookDao = bf.getBean("bookDao", BookDao.class);
bookDao.save();
  • BeanFactory创建完毕后,所有的Bean均为延迟加载,当调用getBean()方法获取Bean对象时才会创建Bean对象并返回。

Spring核心容器总结

容器相关

  • BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载。

  • ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载。

  • ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能。

  • ApplicationContext接口常用初始化类:

    • ClassPathXmlApplicationContext(常用)

    • FileSystemXmlApplicationContext

bean相关

content-742

依赖注入相关

content-743