zoukankan      html  css  js  c++  java
  • Spring Framework5.0 学习(4)—— Bean的命名id和name区别

    Spring中Bean的命名

    1、每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一;

    2、可以不指定id属性,只指定全限定类名,如:

    <bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean>  

    此时需要通过接口getBean(Class<T> requiredType)来获取Bean;

    如果该Bean找不到则抛异常:NoSuchBeanDefinitionException

    如果该类型的Bean有多个则抛异常:NoUniqueBeanDefinitionException

    3、如果不指定id,只指定name,那么name为Bean的标识符,并且需要在容器中唯一;

    4、同时指定name和id,此时id为标识符,而name为Bean的别名,两者都可以找到目标Bean;

    5、可以指定多个name,之间可以用分号(“;”)、空格(“ ”)或逗号(“,”)分隔开,如果没有指定id,那么第一个name为标识符,其余的为别名;若指定了id属性,则id为标识符,所有的name均为别名。如:

    <bean name="alias1 alias2;alias3,alias4" id="hello1" class="com.zyh.spring3.hello.HelloWorld">  
    <constructor-arg index="0" value="Rod"></constructor-arg>  
    </bean>  

    此时,hello1为标识符,而alias1,alias2,alias3,alias4为别名,它们都可以作为Bean的键值;

    6、可以使用<alias>标签指定别名,别名也必须在IoC容器中唯一,如:

    <bean name="bean" class="com.zyh.spring3.hello.HelloWorld"/>    
    <alias alias="alias1" name="bean"/>    
    <alias alias="alias2" name="bean"/>   
  • 相关阅读:
    基于《Hadoop权威指南 第三版》在Windows搭建Hadoop环境及运行第一个例子
    使用java发送HTTP请求
    关于centOS7的一些笔记
    关于netty的多个handler链式模式
    关于netty的简单实现
    EF---延迟加载技术
    Restful Api 最佳实践
    FlaskWeb开发
    python多线程/多进程
    Python网络编程
  • 原文地址:https://www.cnblogs.com/zheting/p/7712426.html
Copyright © 2011-2022 走看看