org.sprigframework.beans
和org.spring.framework.context
包是Spring Framework的IoC容器的基础。
BeanFactory接口是顶层接口,提供了配置框架的基本功能;ApplicationContext
是BeanFactory
的一个子接口,增加了更多的企业特定功能。
org.springframework.context.Application
接口代表 Spring IoC容器。
ApplicationContext
的实现类:ClassPathXmlApplicationContext
或FileSystemXmlApplicationContext
。
容器负责:实例化、配置和组装bean。
容器通过读取配置元数据,在ApplicatinContext
被创建和初始化后,就可以获得一个配置好的可执行系统。
配置元数据的3种方式:
-
基于XML文件
-
基于注解
-
基于Java代码
实例化一个容器:
ApplicationContext context = new ClassPathXmlApplication("services.xml", "dssx.xml");
使用容器:
ApplicationContext
是一个高级工厂的接口,能够维护不同Bean及其依赖关系的注册表。通过使用方法T getBean(String name, Class<T> requiredType)
,可以检索到Bean的实例。
ApplicationContext
可以读取Bean的定义(definition)并访问它们。
// 创建和配置bean ApplicationContext context = new ClassPathXmlApplicationContext("services.xmal"); // 检索配置的实例 PetStoreService service = context.getBean("petStore", PetStoreService.class); // 使用配置的实例 List<String> userList = service.getUsernameList();