`

spring beanFactory 配置文件中bean的id与name的区别

阅读更多

简单的说:id用来标识bean,是唯一的,且只有一个;name定义的是bean的alias,可以有多个,并可能与其他的bean重名。

详细的说:

id是唯一标识bean.不能用特殊字符:×#@ ,不能用数字开头。在bean引用的时候只能用id指向你需要的bean;

name 可以用特殊字符,并且一个bean可以用多个名称:name=“bean1,bean2,bean3”,用逗号隔开。

通过id和name都可以取出该Bean.

BeanFactory factory=new XmlBeanFactory(new ClassPathResource("config.xml"));

Dao dao=(Dao)factory.getBean("thisbean");

Dao dao1=(Dao)factory.getBean("bean1");

Dao dao2=(Dao)factory.getBean("bean2");     .........

       // 验证是否指向同一个Bean
          System.out.println((dao== dao1));
          System.out.println((dao1== dao2));
          // 输出bean的别名
          String[] thisbean= factory.getAliases("thisbean");
          for (String strbean: thisbean) {
              System.out.println(strbean);
          }

配置文件中不允许出现两个id相同的,否则在初始化时即会报错;但配置文件中允许出现两个name相同的,在用getBean()返回实例时,后面一个Bean被返回,应该是前面那个被后面同名的 覆盖了。有鉴于此,为了避免不经意的同名覆盖的现象,尽量用id属性而不要用name属性。

如果id和name都没有指定,则用类全名作为name,如,则你可以通过
getBean("com.stamen.BeanLifeCycleImpl")返回该实例。

 

 

分享到:
评论

相关推荐

    简单模拟Spring的beanFactory

    这些信息通常写在XML配置文件中,但也可以通过注解或编程方式定义。 2. **bean的实例化**:`BeanFactory`根据bean定义创建bean实例。这可以通过单例模式、原型模式或其他策略实现。Spring默认使用CGLIB或Java反射...

    二、Spring源码分析——BeanFactory

    三、BeanFactory与ApplicationContext的区别 虽然BeanFactory是基础,但实际开发中更多使用的是其子类ApplicationContext。ApplicationContext除了具备BeanFactory的所有功能外,还添加了以下特性: 1. **资源加载**...

    spring中的BeanFactory解析xml文件

    当我们谈论“Spring中的BeanFactory解析XML文件”时,我们实际上是在讨论如何通过XML配置文件来定义、创建和管理bean。这篇文章将深入探讨BeanFactory的工作原理,以及XML配置文件在其中的作用。 首先,BeanFactory...

    简单了解Spring中BeanFactory与FactoryBean的区别

    简单了解Spring中BeanFactory与FactoryBean的区别 Spring框架中有两个非常关键的接口:BeanFactory和FactoryBean。虽然它们的名字相似,但它们的作用和实现机制却有很大的不同。 BeanFactory是Spring IoC容器的...

    详解Spring中Bean的生命周期和作用域及实现方式

    3. 设置BeanName:在这个阶段,Bean已经实例化,并且已经设置了名称。 4. 设置BeanFactory:在这个阶段,Bean已经实例化,并且已经设置了BeanFactory。 5. 设置ApplicationContext:在这个阶段,Bean已经实例化,...

    Spring的Bean配置

    在本文中,我们将深入探讨Spring中的Bean配置,包括IoC和DI的概念,Bean的配置方式,以及不同类型的IOC容器。 **Spring的Bean配置**: 在Spring中,Bean是应用中的对象,它们由Spring IoC容器负责创建、管理和装配...

    Spring在应用中获得Bean的方法

    在这里,"myBean"是Bean的ID,"beans.xml"是配置文件,定义了Bean的配置。 2. **通过类型获取Bean** 如果你知道Bean的类型,可以使用`getBean(Class<T> requiredType)`方法,Spring会返回与给定类型匹配的第一个...

    spring的Bean配置说明

    3. `id` 和 `name` 属性:`id`属性为Bean提供一个唯一的标识,用于在代码中通过BeanFactory或ApplicationContext获取Bean实例。`name`属性可以为Bean添加别名,允许使用多个名字引用同一个Bean。 4. `singleton` ...

    Java中Spring获取bean方法小结

    这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory** 是Spring中最基础的IoC容器,负责管理和实例化Bean。它允许开发者定义Bean的生命周期和...

    Spring Bean创建初始化流程.docx

    在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...

    Spring基于xml文件配置Bean过程详解

    Spring基于xml文件配置Bean过程详解 Spring 框架是一个功能强大且灵活的Java应用程序框架,它提供了一个完整的ioc容器,来管理Bean的生命周期。Spring框架基于xml文件配置Bean是指通过xml文件来配置Bean的创建过程...

    Spring 配置文件详解.doc

    Spring 框架中的配置文件是项目的核心组件之一,用于定义和管理应用程序中的 Bean 对象。配置文件通常以 XML 文件形式存在,用于描述 Bean 对象的定义、关系和依赖关系。在本文中,我们将详细介绍 Spring 配置文件的...

    Spring的Bean配置说明

    - **功能概述**:`<beans>`是Spring配置文件的根元素,用来包含一个或多个`<bean>`元素,用于定义Spring容器管理的各种Bean。 #### 二、`<bean>`元素详解 - **基础配置**: - **`class`属性**:表示JavaBean的全...

    spring bean 属性总结

    - **id属性**:是Bean在BeanFactory中的唯一标识符,用于通过BeanFactory获取Bean实例。例如,`<bean id="myBean" class="com.example.MyClass">`。 - **name属性**:类似于`id`属性,但可以定义多个别名。例如,`...

    Spring之核心容器bean

    Spring框架是Java开发中的一个核心库,主要用于管理对象(通常称为bean)的生命周期和依赖关系。在本篇文章中,我们将深入探讨Spring的核心容器及其bean的概念,以帮助你更好地理解和使用这个强大的工具。 **Spring...

    Spring bean 管理

    在基于XML的配置方式中,Spring通过XML文件来配置Bean的定义。在这个文件中,开发者定义需要Spring管理的Bean,并且配置相应的属性和依赖关系。 - 三种实例化Bean的方式: - 使用类构造器实例化:这是最简单的实例...

    Spring中关于Bean的管理的课件

    6. **Spring的自动装配(autowiring)**:Spring可以自动识别并装配Bean的依赖,减少了显式配置的工作量,有byType、byName等多种方式。 7. **集合装配**:Spring支持对数组、List和Map类型的属性进行装配,使得...

    Spring的BeanFactory的接口注解

    在Spring框架中,`BeanFactory`是工厂模式的一种实现,它负责管理容器中的Bean的生命周期与依赖注入。了解`BeanFactory`及其相关接口的功能对于掌握Spring的核心原理至关重要。 #### 二、`BeanFactory`接口的关键...

    获得spring里注册Bean的四种方法

    这种方法需要在 Spring 配置文件中添加一个 Bean,例如 `<bean id="serviceLocator" class="com.am.oa.commons.service.ServiceLocator" singleton="true" />`。然后,我们可以实现 BeanFactoryAware 接口,使用 ...

Global site tag (gtag.js) - Google Analytics