使用 bean 名称获取
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
使用 bean 名称获取并指定类型
BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
使用 bean 类型获取
BookDao bookDao = ctx.getBean(BookDao.class);
<aside> ⚠️ 使用方式三,容器中对应的 Bean 只能有一个
当我们使用方式三 ctx.getBean(BookDao.class)
获取Bean时,Spring会在容器中查找与指定类型(BookDao.class
)匹配的Bean实例。如果存在多个Bean都是**BookDao
**类型的实例,Spring无法决定返回哪个实例,因此会抛出异常。
</aside>
ApplicationContext 是立即加载 Bean
BeanFactory 是延迟加载 Bean
想让 ApplicationContext 也延迟加载?在配置文件中: