Spring Bean的命名

Spring Bean 的命名

1、Xml中

  • 1.1、一般情况下,我们使用id属性对Bean命名。
    • id在配置文件中必须是唯一的。
    • 同时指定多个id,用逗号,隔开。
    • id命名是XML协议规定的:必须以字母开始,后面可以是字母数字连字符(-)下划线(_)点(.)冒号(:)
<bean id="car" class="com.xych.bean.Car" />
<bean id="user,person" class="com.xych.bean.User" />
  • 1.2、如果希望用一些特殊字符来命名,可以使用name属性
    • 可以重复。允许存在name相同的两个或以上的Bean。
    • 通过name属性getBean时,获取的是后定义的Bean。
    • name属性没有字符上的限制,几乎可以使用任何字符。
<bean name="cap" class="com.xych.bean.GlassCap" />     
<bean name="cap" class="com.xych.bean.PlasticCap" />   

// 在getBean("cap")时,获取的是PlasticCap
  • 1.3、idname均不指定
    • Spring将Bean的全限定类名作为Bean的名称。
    • 如果存在多个相同的bean,从第二个开始,getBean时需加上下标。
<bean class="com.xych.bean.Car" />
<bean class="com.xych.bean.Car" />
<bean class="com.xych.bean.Car" />

// getBean("com.xych.bean.Car")
// getBean("com.xych.bean.Car#1")
// getBean("com.xych.bean.Car#2")

2、注解中

  • @Component@Repository@Service@Controllervalue属性为Bean的name
  • 未指定上面注解的value时,将非限定类名的首字母小写后的String作为name。

参考:
[1] 陈雄华,林开雄,文建国.精通Spring4.x 企业应用开发实战[M].北京:电子工业出版社,2017.1:154-155.

你可能感兴趣的:(Java,Spring)