3.1 Spring IoC容器与Beans简单介绍 BeanFactory接口提供对随意对象的配置; ApplicationContext是BeanFactory的子接口。整合了Spring Aop功能,消息资源控制。事件公布,应用层特殊的上下文(在web应用中) 由IoC容器实例化、组装、管理的对象都是Bean 3.2 容器概述 org.springframework.context.ApplicationContext代表Spring IoC容器,而且负责通过读取配置元数据来实例化、配置、组装Bean。配置元数据能够通过三种形式表示:xml,Java凝视,Java code(这个不懂) 在独立的环境中。实例化ClassPathXmlApplicationContext或FileSystemXmlApplicationContext对象。 3.2.1 配置元数据 除了配置在xml文件里,还有两种方法: Annotation-based configuration: ? Java-based configuration: ?
你能够使用Spring's integration with AspectJ配置不在IoC容器控制下的对象?
基于xml配置的基本形式:
3.2.2 实例化一个容器
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "services.xml", "daos.xml"});
Note:第4章有更方便的机制读取XML文件?
3.2.2.1 基于XML配置的元数据的组成
services.xml必须位于包括该文件的xml文件同个文件夹或者是在classPath文件夹下。
能够通过相对路径“../path”这样的方式来配置文件路径,可是这方法并不推荐(用这样的方式创建出来的是依赖文件是在当前应用的外部?)。尤其不推荐用于"classpath:"这样的URL中(执行时解决程序会选择“近期的”classpth,并查看它的父文件夹,导致找不到相应的xml文件)。
能够使用:"file:C:/config/services.xml"或"classpath:/config/services.xml"。可是要记住假设使用绝对路径的话,就存在耦合问题了。
3.2.3 使用容器
// create and configure beansApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "services.xml", "daos.xml"});// retrieve configured instancePetStoreServiceImpl service = context.getBean("petStore", PetStoreServiceImpl.class);// use configured instanceList userList service.getUsernameList();