1.id属性命名必须满足XML的命名规范,因为id其实是XML中就做了限定的。总结起来就相当于一个Java变量的命名:不能以数字,符号打头,不能有空格,如123,?ad,"ab   "等都是不规范的,Spring在初始化时就会报错,诸如:    
   
   
  代码  
  org.xml.sax.SAXParseException:   Attribute   value   "?ab"   of   type   ID   must   be   a   name.      
   
   
  2.name属性则没有这些限定,你可以使用几乎任何的名称,如?ab,123等,但不能带空格,如"a   b","   abc",,这时,虽然初始化时不会报错,但在getBean()则会报出诸如以下的错误:    
   
   
  代码  
  org.springframework.beans.factory.NoSuchBeanDefinitionException:   No   bean   named   'a   b'   is   defined      
   
   
  3.配置文件中不允许出现两个id相同的<bean>,否则在初始化时即会报错,如:    
   
   
  代码  
  org.xml.sax.SAXParseException:   Attribute   value   "aa"   of   type   ID   must   be   unique   within   the   document.      
   
  4.但配置文件中允许出现两个name相同的<bean>,在用getBean()返回实例时,后面一个Bean被返回,应该是前面那个 <bean>被后面同名的   <bean>覆盖了。有鉴于此,为了避免不经意的同名覆盖的现象,尽量用id属性而不要用name属性。  
   
  5.name属性可以用,隔开指定多个名字,如<bean   name="b1,b2,b3">,相当于多个别名,这时通过getBean("a1")   getBean("a2")   getBean("a3")返回的都是同一个实例(假设是singleton的情况)    
   
  6.如果id和name都没有指定,则用类全名作为name,如<bean   class="com.stamen.BeanLifeCycleImpl">,则你可以通过    
  getBean("com.stamen.BeanLifeCycleImpl")返回该实例。  
   
  7.如果存在多个id和name都没有指定,且实例类都一样的<bean>,如:    
   
   
  代码  
  <bean   class="com.stamen.BeanLifeCycleImpl"/>        
        <bean   class="com.stamen.BeanLifeCycleImpl"/>        
        <bean   class="com.stamen.BeanLifeCycleImpl"/>      
   
  则第一个bean通过getBean("com.stamen.BeanLifeCycleImpl")获得,    
  第二个bean通过getBean("com.stamen.BeanLifeCycleImpl#1")获得,    
  第三个bean通过getBean("com.stamen.BeanLifeCycleImpl#2")获得,以此类推。

spring配置文件中Bean中的id和name的区别相关推荐

  1. 通过Spring配置文件中bean中的property赋值

    基本数据类型赋值-通过spring配置文件中bean中的property 扩展-以此方式可以通过配置为连接数据的属性赋值 1.如果是基本数据类型,可以通过setter方法为对象中的属性设置初始值,应用 ...

  2. Spring配置文件applicationContext.xml中bean>>property>>name属性的含义

    Spring配置文件applicationContext.xml中bean>>property>>name属性表示的含义 首先我们知道property是bean元素的子元素,它 ...

  3. spring配置文件import标签中使用${}占位符获得配置文件的属性值

    2019独角兽企业重金招聘Python工程师标准>>> 一般情况下我们在Spring的配置文件中使用<import>标签是这样的,<import resource= ...

  4. Spring容器实例bean中的几个关键PostProcessor

    本文从几个spring提供的关键的PostProcessor处理器,来帮助理解spring创建bean的过程: 下面是按方法执行的前后顺序排列 BeanFactoryPostProcessor.pos ...

  5. spring配置文件中非bean标签的原理解析

    2019独角兽企业重金招聘Python工程师标准>>> 在spring配置文件中,我们经常见到context:property-placeholder/context:compone ...

  6. Spring中使用XML方式导入Spring配置文件,Boot中使用全注解导入Spring配置

    目录 Spring中的方法 Spring Boot中的方法 Spring中的方法 @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效: Spring Boot里面没有 ...

  7. Spring系列之bean中的autowire-candidate又是干什么的?

    当容器中某种类型的bean存在多个的时候,此时如果我们从容器中查找这种类型的bean的时候,会报下面这个异常: org.springframework.beans.factory.NoUniqueBe ...

  8. Idea中Spring整合MyBatis框架中配置文件中对象注入问题解决方案

    运行环境:Spring框架整合MaBitis框架 问题叙述: 在Spring配置文件applicationContext-mybatis.xml中配置好mybatis之后 <?xml versi ...

  9. 跟着柴毛毛学Spring(3)——简化Bean的配置

    通过前面的学习.我们会感觉到对于一个有较多Bean的大项目,Spring的配置会比較复杂. 那么接下来我们就介绍怎样简化Spring的配置. 简化Spring的配置主要分为两类: 1. 自己主动装配 ...

最新文章

  1. Machine Learning week 9 quiz: Recommender Systems
  2. 我们又双叒搬家了!(附福利)
  3. codeforce 589B枚举
  4. linux组手机nas,linux 搭建nas服务器
  5. 计算机配置 凭据分配,win7怎样添加凭据?-win7添加凭证的方法 - 河东软件园
  6. NPOI读取Excel生成DataTable转为Json后利用LitJons读取
  7. python虚拟环境 windows环境搭建_windows下安装Python虚拟环境virtualenvwrapper-win
  8. [tensorflow]tensorflow2.0的优化理论
  9. 2020 IJCAI 接受论文 list 分类排列(三)
  10. 吉林省专升本历年真题高频词汇
  11. nas网络存储_网络附加存储NAS
  12. html中自动换行标记[转]
  13. C盘空间大释放——Downloaded Installations
  14. iPad做Windows扩展屏
  15. 58沈剑解读:数据库典型架构实践
  16. win7搜索功能失效/win7搜索功能不能使用
  17. 【英语单词词汇笔记本】把英语常用常考的单词分100个类别:主要针对阅读、翻译、作文、词汇量
  18. iOS开发-定制多样式二维码
  19. IOS m3u8格式视频流截图
  20. 高通Android手机软件开发培训

热门文章

  1. CF235C Cyclical Quest
  2. 白天求生存,晚上谋发展
  3. c4d-变形工具-7
  4. UG片体分模9步搞定,彻底解决UG实体分模分不开的问题
  5. 站在三岔路口的全面屏手机,最终会走向何方?
  6. Python中的groupby分组
  7. devenv命令行编译项目
  8. 通过手动添加id从云音乐接口一键下载音乐(Python3实现)
  9. 逻辑回归(LR)的原理及其推导
  10. 转- android硬件传感器