`
NicholasBugs
  • 浏览: 51810 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring配置文件中的 id和name

阅读更多
今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下:

首先澄清一个概念:

同名bean:多个bean 有相同的 name 或者 id,称之为同名bean

<bean> 的id 和 name的区别

id和name都是spring 容器中中bean 的唯一标识符。

id: 一个bean的唯一标识  , 命名格式必须符合XML ID属性的命名规范

name: 可以用特殊字符,并且一个bean可以用多个名称:name=“bean1,bean2,bean3” ,用逗号或者分号或者空格隔开。如果没有id,则name的第一个名称默认是id

spring 容器如何处理同名bean?

    同一个spring配置文件中,bean的 id、name是不能够重复的,否则spring容器启动时会报错。

    如果一个spring容器从多个配置文件中加载配置信息,则多个配置文件中是允许有同名bean的,并且后面加载的配置文件的中的bean定义会覆盖前面加载的同名bean。

spring 容器如何处理没有指定id、name属性的bean?

如果 一个 <bean> 标签未指定 id、name 属性,则 spring容器会给其一个默认的id,值为其类全名。
如果有多个<bean> 标签未指定 id、name 属性,则spring容器会按照其出现的次序,分别给其指定 id 值为 "类全名#1", "类全名#2"

如下:
配置文件:
   <bean class="com.xxx.UserInfo">
       <property name="accountName" value="no-id-no-name0"></property>
   </bean>
   
   <bean class="com.xxx.UserInfo">
       <property name="accountName" value="no-id-no-name1"></property>
   </bean>
   
   <bean class="com.xxx.UserInfo">
       <property name="accountName" value="no-id-no-name2"></property>
   </bean>

  
获取bean的方式:
    UserInfo u4 = (UserInfo)ctx.getBean("com.xxx.UserInfo");
    UserInfo u5 = (UserInfo)ctx.getBean("com.xxx.UserInfo#1");
    UserInfo u6 = (UserInfo)ctx.getBean("com.xxx.UserInfo#2");
分享到:
评论
2 楼 hudazheng 2015-08-21  
  
1 楼 hxt2015 2015-08-13  
    

相关推荐

    spring 配置文件详解

    3. Bean 生产和实例分发:在 Spring 配置文件中,可以定义 Bean 的生产和实例分发策略,例如 singleton、prototype 等。Spring 容器将根据配置文件中的定义,生产和分发 Bean 实例。 下面是一个比较完整的 Spring ...

    spring 配置文件 归类

    本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)两个重要概念。 ### 1. IOC (控制反转) IOC是Spring的核心特性,...

    spring配置文件模板

    本文将深入探讨Spring配置文件`applicationContext.xml`中的关键知识点。 首先,我们来理解`applicationContext.xml`的结构和作用。这个文件是Spring IoC容器的基础,它定义了一系列Bean的定义,这些Bean就是Spring...

    spring配置文件详细介绍

    在Spring配置文件中,最重要的元素是`&lt;bean&gt;`。`&lt;bean&gt;`元素定义了一个Spring管理的对象,也称为bean。它包含几个关键属性,如`id`(唯一标识符)、`class`(类路径,用于实例化对象)和`name`(可选的别名)。例如...

    spring配置文件:整理总结Spring中XML配

    ### Spring配置文件:整理与总结Spring中XML配置的最佳实践 #### 概述 Spring框架作为一个强大的Java应用框架,在企业级应用开发中占据了重要的地位。它为普通的Java对象(Plain Old Java Objects, POJOs)提供了...

    Spring配置文件spring-context.zip

    "Spring配置文件spring-context.zip"包含了Spring框架中的上下文配置,这是Spring管理对象及服务的核心。 `applicationContext.xml`是Spring应用上下文的主配置文件,它定义了bean的声明、bean之间的依赖关系以及...

    spring所有配置文件详解

    ### Spring配置文件详解 #### 一、引言 在Java Web开发领域,Spring框架因其强大的功能和灵活性而受到广泛欢迎。对于初学者来说,理解Spring的配置方式是至关重要的第一步。本文将详细介绍Spring中常见的配置文件...

    Spring4 jar包和Spring配置文件

    Spring框架是Java开发中最常用的轻量级框架之一,它的核心在于IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented ...深入学习Spring4的jar包和配置文件,将使你更好地驾驭Java开发环境,提高软件工程能力。

    详解Spring的配置文件

    ### Spring配置文件详解 #### 一、Spring框架简介与配置文件的重要性 Spring 是一个开源的 Java 平台框架,提供了一种轻量级的应用程序开发方式。它通过依赖注入(Dependency Injection, DI)和面向切面编程...

    spring配置文件

    本压缩包文件围绕"spring配置文件"展开,旨在帮助用户更好地理解和使用Spring框架的配置。 首先,Spring配置文件通常指的是XML格式的`applicationContext.xml`,这是Spring容器的主配置文件,用于定义bean的实例、...

    Spring3.0 配置文件中加载Properties文件的小例子

    在Spring 3.0框架中,配置文件是管理和组织应用程序行为的关键部分。Properties文件则常用于存储应用程序的配置参数,如数据库连接字符串、系统环境变量等。本篇将详细讲解如何在Spring 3.0的配置文件中加载...

    Spring 配置文件 和详细笔记

    这些是Spring配置文件的基本知识点,通过熟练掌握和运用,我们可以有效地管理和控制Spring容器中的bean,构建出灵活且可扩展的应用程序。了解并实践这些概念,将有助于提升你在Spring框架中的开发效率和代码质量。

    Spring 配置文件详解.doc

    在 XML 配置文件中,我们可以使用有描述性的 id 和 name,而不是成堆的注释。另外,加一个文件描述头将会非常有用,这个描述可以概括文件中定义的 Bean。例如: ```xml &lt;description&gt;This file defines billing ...

    Spring 3.1配置文件示例(备忘)

    首先,`applicationContext.xml` 是 Spring 容器的配置文件,它定义了容器中 Bean 的实例化、装配和管理规则。在 Spring 3.1 中,XML 配置仍然是主流,尽管有基于注解的配置方式逐渐流行。Bean 的定义通常包括 ID...

    spring mvc的配置文件详解

    Spring MVC 的配置文件主要用于管理整个应用的结构和行为。通过 DispatcherServlet,我们可以控制请求的处理流程,并通过不同的 HandlerMapping 实现灵活的 URL 映射机制。这些配置有助于开发者构建高效、可扩展的 ...

    Spring 最全约束配置文件

    #### 二、Spring配置文件基础知识 在Spring框架中,配置文件是整个系统的核心组成部分之一。它定义了Spring容器中的各种Bean及其之间的关系。Spring支持多种类型的配置方式,其中XML配置文件是最常见的一种形式。...

    spring2 整合 Dwr(把DWR的配置写到Spring的配置文件)

    在Spring配置文件中,可能的配置如下: ```xml &lt;bean id="dwrController" class="org.directwebremoting.spring.DwrController"&gt; &lt;property name="configuration" ref="dwrConfiguration" /&gt; &lt;bean id=...

    jsf+spring 的 配置文件

    在Spring配置文件中,我们需要定义一个使用`JdbcTemplate`的DAO(Data Access Object)类,并注入数据库连接的相关属性,如数据源(DataSource)。例如: ```xml &lt;bean id="dataSource" class="org.spring...

    spring配置JNDI数据源

    总结来说,Spring配置JNDI数据源主要涉及两部分:一是应用服务器中JNDI资源的注册,二是Spring配置文件中通过JNDI查找并使用这些资源。这种方式的好处在于解耦,应用不再直接依赖具体的数据库连接配置,而是通过JNDI...

Global site tag (gtag.js) - Google Analytics