`

spring bean & id

 
阅读更多

首先澄清一个概念: 

 

同名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>  

 

 

获取:

 

 

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"); 

 

 

分享到:
评论

相关推荐

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    Spring容器在解析配置时,如果发现多个具有相同ID的Bean定义,会抛出异常。但如果这些定义分布在不同的配置文件中,或者通过编程方式动态添加,就可能导致容器内出现两个相同的Bean实例。 2. **@Autowired注解的...

    普元eos-springbean开发

    ### 普元EOS-SpringBean开发概述 普元EOS平台是一款面向企业级应用的低代码开发平台,它集成了大量的开发工具和技术框架,帮助企业快速构建高质量的应用系统。本文将围绕“普元EOS-SpringBean开发”这一主题展开...

    spring bean 属性总结

    ### Spring Bean 属性详解 Spring框架是Java平台上的一个开源框架,主要用来简化企业级应用程序的开发。在Spring中,核心概念之一就是Bean,它是一个简单的Java对象,由Spring IoC容器管理。Spring通过XML配置文件...

    Spring Bean生命周期&BeanDefinitions1

    这些接口允许Bean获取其ID、BeanFactory引用或ApplicationContext引用,以增强Bean的功能。 4. **BeanPostProcessor**:BeanPostProcessor接口提供预初始化和后初始化方法,即`postProcessBeforeInitialization()`...

    实例化Spring bean的两种工厂方法

    在Spring框架中,bean的实例化是其核心功能之一,它允许我们管理应用程序中的对象生命周期。本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念...

    创建SpringBean配置工具类

    创建SpringBean配置工具类(安全)如: &lt;bean id=... scope="prototype"&gt;&lt;/bean&gt;

    Spring Bean简单应用实例

    在Spring框架中,Bean是核心概念,它代表了应用程序中的对象。Spring通过IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)来管理这些Bean。在这个"Spring Bean简单应用实例"中,我们将...

    Spring bean 管理

    - id和name:id属性是Bean的标识符,name属性可以包含特殊字符,且可以有多个别名。 - class:用于指定Bean所对应的完整类名,Spring通过反射来创建该类的实例。 3. Bean的作用域: - singleton:默认的作用域,...

    Spring的Bean配置

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

    spring的bean加载顺序样例项目

    - Spring中的Bean是在`beans.xml`或Java配置类中通过`&lt;bean&gt;`标签定义的,每个Bean都有一个唯一的ID或名称。 - Bean的作用域包括单例(`singleton`)、原型(`prototype`)、请求(`request`)、会话(`session`)...

    Spring之核心容器bean

    Spring还提供了自动装配功能,通过@Autowired注解,容器会自动寻找合适的bean进行注入,无需显式指定bean的ID。这使得配置更加简洁,特别是在使用大量bean的情况下。 **总结** Spring的核心容器bean是其强大功能的...

    spring中的bean

    在本篇中,我们将深入探讨"Spring中的Bean"这一主题,包括Bean的定义、配置以及如何在实际应用中使用。 首先,我们需要理解什么是Spring中的Bean。在Spring中,Bean通常代表应用程序中的一个对象,这些对象由Spring...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    总的来说,获取非Spring管理组件中的SpringBean主要有两种方式:一是通过实现`ApplicationContextAware`接口并存储ApplicationContext,二是使用注解和静态内部类来注入BeanFactory。这两种方法都是Spring框架提供的...

    spring依赖注入bean

    **Spring 依赖注入 (DI) 与 Bean** Spring 框架的核心特性之一就是依赖注入(Dependency Injection,简称 DI),这是一种设计模式,它允许我们控制组件之间的耦合,而不是让组件自行创建它们所依赖的对象。这有助于...

    Java中Spring获取bean方法小结

    然后在需要的地方,只需调用`BeanManager.getBean("beanId")`即可。 4. **在Web应用中启动** 在Web应用中,可以配置一个Servlet,在服务器启动时初始化ApplicationContext。在`web.xml`中定义Servlet,并在`init...

    Spring定义bean的三种方式和自动注入

    在Spring框架中,管理Bean的方式主要有三种:XML配置、注解配置和Java配置。下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`...

    普通类调用Spring bean对象

    public static Object getBean(String beanId) { return context.getBean(beanId); } } ``` 然后在普通类中,可以使用`SpringUtil.getBean("myBean")`来获取bean。 6. **Spring EL(Expression Language)**:...

    spring创建bean简单示例

    在Spring框架中,Bean是核心概念,它是Spring管理的对象,通常代表了应用程序中的业务对象或服务。本示例将深入探讨如何在Spring中创建和管理Bean。首先,我们需要理解Spring的IoC(Inversion of Control,控制反转...

    SPRING:bean配置properties

    在Spring框架中,Bean的配置与管理是其核心功能之一,而通过`PropertyPlaceholderConfigurer`进行属性占位符的配置则是实现动态配置的关键技术。本文将深入解析如何利用`PropertyPlaceholderConfigurer`进行bean配置...

Global site tag (gtag.js) - Google Analytics