`

Spring Beanfactory create

阅读更多

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。

分享到:
评论

相关推荐

    简单Spring框架模拟器--Demo

    “tiny-spring-step-9-auto-create-aop-proxy.zip”讲解了Spring如何自动创建AOP代理,使得你可以无感知地享受AOP带来的便利。 最后,“tiny-spring-step-10-invite-cglib-and-aopproxy-factory (1).zip”引入了...

    Spring完美教程

    DefaultListableBeanFactory beanFactory = createBeanFactory(); customizeBeanFactory(beanFactory); loadBeanDefinitions(beanFactory); // ...省略同步代码... } ``` - **说明**:此方法首先销毁旧的`...

    自己写spring框架.zip

    第九步"tiny-spring-step-9-auto-create-aop-proxy.zip"讨论了AOP代理的自动创建,Spring如何在运行时自动为符合切点条件的Bean创建代理,从而实现AOP的功能。 最后一步"tiny-spring-step-10-invite-cglib-and-...

    spring live

    1. **BeanFactory**:BeanFactory是Spring容器的基础接口,它是Spring的核心,负责管理Bean的生命周期和依赖注入。通过BeanFactory,我们可以将对象的创建和配置分离,实现松耦合。BeanFactory通过读取XML配置文件来...

    使用spring编写的工厂模式

    在Spring中,我们可以使用BeanFactory或者ApplicationContext作为工厂,它们都是Spring提供的IoC容器。通过配置XML文件或使用Java配置,我们可以声明哪些bean是工厂bean,哪些bean需要由工厂bean来创建。例如: ```...

    Spring MVC-API(5)

    Spring API涵盖了各种接口和类,如ApplicationContext,BeanFactory等,它们用于配置、管理和控制Spring容器中的bean。开发者可以通过实现特定接口或使用注解来定义自己的API,使其他组件能够与之交互。例如,@...

    Spring源码解析

    - **BeanFactory接口**:这是Spring中最基础的IOC容器接口,它定义了创建、配置和管理Bean的基础规范。BeanFactory负责装载Bean的定义,并按需创建Bean的实例。具体实现包括`XmlBeanFactory`、`...

    Spring Live中文

    - `BeanFactory` 是Spring的核心接口之一,它负责实例化、定位、配置应用程序中的对象,即Bean。 **BeanFactory中一个bean的生命周期:** 1. **初始化阶段**:创建Bean实例。 2. **配置阶段**:设置Bean的属性值。...

    spring与jms结合实例

    - `ApplicationContext`是Spring的核心接口之一,提供了高级功能如国际化支持、资源访问等,同时也是一个BeanFactory。 - `SpringJmsTestMain`类中创建了`ApplicationContext`对象,并通过它获取到`...

    牧紫小岩的Spring学习笔记pdf

    1. **Spring Core**:提供了基础的依赖注入功能,包括BeanFactory和ApplicationContext两个核心接口,用于管理对象的生命周期和依赖关系。 2. **Spring AOP**:实现了面向切面编程功能,允许开发者在不修改业务逻辑...

    Struts2、Spring和Hibernate应用实例图文教程.pdf

    1. **Spring Core Container:**这是Spring框架的基础部分,包括BeanFactory模块和ApplicationContext模块。其中,BeanFactory负责管理对象的生命周期,ApplicationContext则提供了更为强大的功能,比如国际化支持、...

    Spring源码学习五:BeanDefinition装载1

    // Create a new XmlBeanDefinitionReader for the given BeanFactory. XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory); // Configure the bean definition reader ...

    struts2、hibernate、spring学习总结文档

    2. BeanFactory与ApplicationContext:Spring的两种核心容器,ApplicationContext提供了更多企业级服务。 3. AOP:面向切面编程,用于实现如日志、事务管理等功能。 4. 整合其他框架:Spring可以轻松地与Struts2和...

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    JS_Spring_study

    3. Bean容器:Spring容器负责创建、配置和管理对象,主要有两种类型的容器——BeanFactory和ApplicationContext。 4. MVC框架:Spring MVC是Spring为构建Web应用提供的模块,包括模型、视图和控制器,使得前后端分离...

    Spring实例化bean的方式代码详解

    `BeanFactory`是Spring的基本容器,它在调用`getBean()`方法时才实例化bean,实现延迟加载。如果bean的依赖无法注入,此时才会抛出异常。相比之下,`ApplicationContext`在初始化时会实例化所有bean,除非你通过`...

    java文件的加载

    import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; ClassPathResource resource...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    dwr框架的源代码示例ajax

    在`dwr.xml`中,可以使用`beanFactory`标签来指定Spring的Bean ID: ```xml &lt;create creator="beanFactory" javascript="MyService"&gt; &lt;/create&gt; ``` 然后,在Spring的配置文件中定义`myServiceImpl` Bean: ```...

    三大框架原理.

    当需要获取某个bean时,可以通过`ApplicationContext`或者`BeanFactory`接口提供的方法获取。 - **XML配置文件**:这是Spring早期版本中最常见的配置方式。开发者需要在XML文件中定义各个bean及其属性和依赖关系。 ...

Global site tag (gtag.js) - Google Analytics