Spring的依赖注入容器的核心是Beanfactory。BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。创建BeanFactory 可以通过手工代码的方式也可以通过配置文件的方式。具体有以下几种方式:
1. ClassPathXmlApplicationContext:默认从classpath的xml配置文件创建,可以从jar包中读取配置文件
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); BeanFactory factory = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); BeanFactory factory = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");
如果要读多个配置文件, 可以用以下下方式
BeanFactory factory = new ClassPathXmlApplicationContext(new String[]{"applicationContext-1.xml","applicationContext-2.xml"}); BeanFactory factory = new ClassPathXmlApplicationContext("classpath*:/applicationContext*.xml"); BeanFactory factory = new ClassPathXmlApplicationContext("classpath*:src/folder/applicationContext*.xml");
classpath: 只能加载一个配置文件,如果配置了多个,则只加载第一个
classpath*: 可以加载多个配置文件,如果有多个配置文件,就用这个
2. FileSystemXmlApplicationContext:默认读取项目工作路径 即项目的根目录
BeanFactory factory = new FileSystemXmlApplicationContext("src/java/application.xml") BeanFactory factory = new FileSystemXmlApplicationContext("file:C:/application.xml") BeanFactory factory = new FileSystemXmlApplicationContext("classpath:application.xml")
如果前缀是file, 必须使用绝对路径,同样也可使用前缀classpath, 功能同上
3. XmlWebApplicationContext : Default WebApplicationContext implementation class for ContextLoader
web.xml
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>${path}/applicationContext.xml</param-value> </context-param>
4. SingletonBeanFactoryLocator
Beanfactory factory = SingletonBeanFactoryLocator.getInstance().useBeanFactory("factoryKey")
默认的配置文件是:classpath*:beanRefFactory.xml, 当然我们也可以指定需要读取的文件
Beanfactory factory = SingletonBeanFactoryLocator.getInstance("${path}/config.xml").useBeanFactory("factoryKey")
在项目中如果我们只需要Beanfactory的基本功能,而不需要额外的比如国际化,我们就可以通过这种方式,而且这种方式的好处是如果在一个大的项目中有多个子项目,我们可以创建父Beanfactory和子Beanfactory,子Beanfactory可以访问父Beanfactory,避免重复创建Beanfactory。
相关推荐
“tiny-spring-step-9-auto-create-aop-proxy.zip”讲解了Spring如何自动创建AOP代理,使得你可以无感知地享受AOP带来的便利。 最后,“tiny-spring-step-10-invite-cglib-and-aopproxy-factory (1).zip”引入了...
DefaultListableBeanFactory beanFactory = createBeanFactory(); customizeBeanFactory(beanFactory); loadBeanDefinitions(beanFactory); // ...省略同步代码... } ``` - **说明**:此方法首先销毁旧的`...
第九步"tiny-spring-step-9-auto-create-aop-proxy.zip"讨论了AOP代理的自动创建,Spring如何在运行时自动为符合切点条件的Bean创建代理,从而实现AOP的功能。 最后一步"tiny-spring-step-10-invite-cglib-and-...
1. **BeanFactory**:BeanFactory是Spring容器的基础接口,它是Spring的核心,负责管理Bean的生命周期和依赖注入。通过BeanFactory,我们可以将对象的创建和配置分离,实现松耦合。BeanFactory通过读取XML配置文件来...
在Spring中,我们可以使用BeanFactory或者ApplicationContext作为工厂,它们都是Spring提供的IoC容器。通过配置XML文件或使用Java配置,我们可以声明哪些bean是工厂bean,哪些bean需要由工厂bean来创建。例如: ```...
Spring API涵盖了各种接口和类,如ApplicationContext,BeanFactory等,它们用于配置、管理和控制Spring容器中的bean。开发者可以通过实现特定接口或使用注解来定义自己的API,使其他组件能够与之交互。例如,@...
- **BeanFactory接口**:这是Spring中最基础的IOC容器接口,它定义了创建、配置和管理Bean的基础规范。BeanFactory负责装载Bean的定义,并按需创建Bean的实例。具体实现包括`XmlBeanFactory`、`...
- `BeanFactory` 是Spring的核心接口之一,它负责实例化、定位、配置应用程序中的对象,即Bean。 **BeanFactory中一个bean的生命周期:** 1. **初始化阶段**:创建Bean实例。 2. **配置阶段**:设置Bean的属性值。...
- `ApplicationContext`是Spring的核心接口之一,提供了高级功能如国际化支持、资源访问等,同时也是一个BeanFactory。 - `SpringJmsTestMain`类中创建了`ApplicationContext`对象,并通过它获取到`...
1. **Spring Core**:提供了基础的依赖注入功能,包括BeanFactory和ApplicationContext两个核心接口,用于管理对象的生命周期和依赖关系。 2. **Spring AOP**:实现了面向切面编程功能,允许开发者在不修改业务逻辑...
1. **Spring Core Container:**这是Spring框架的基础部分,包括BeanFactory模块和ApplicationContext模块。其中,BeanFactory负责管理对象的生命周期,ApplicationContext则提供了更为强大的功能,比如国际化支持、...
// Create a new XmlBeanDefinitionReader for the given BeanFactory. XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory); // Configure the bean definition reader ...
2. BeanFactory与ApplicationContext:Spring的两种核心容器,ApplicationContext提供了更多企业级服务。 3. AOP:面向切面编程,用于实现如日志、事务管理等功能。 4. 整合其他框架:Spring可以轻松地与Struts2和...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
3. Bean容器:Spring容器负责创建、配置和管理对象,主要有两种类型的容器——BeanFactory和ApplicationContext。 4. MVC框架:Spring MVC是Spring为构建Web应用提供的模块,包括模型、视图和控制器,使得前后端分离...
`BeanFactory`是Spring的基本容器,它在调用`getBean()`方法时才实例化bean,实现延迟加载。如果bean的依赖无法注入,此时才会抛出异常。相比之下,`ApplicationContext`在初始化时会实例化所有bean,除非你通过`...
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; ClassPathResource resource...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
在`dwr.xml`中,可以使用`beanFactory`标签来指定Spring的Bean ID: ```xml <create creator="beanFactory" javascript="MyService"> </create> ``` 然后,在Spring的配置文件中定义`myServiceImpl` Bean: ```...
当需要获取某个bean时,可以通过`ApplicationContext`或者`BeanFactory`接口提供的方法获取。 - **XML配置文件**:这是Spring早期版本中最常见的配置方式。开发者需要在XML文件中定义各个bean及其属性和依赖关系。 ...