1 命名规则
(1)每个bean都有一个或多个标识符,这些bean的标识符在它所在的容器中必须唯一。
(2)基于xml的配置元数据中,你可以使用id
或(和) name
属性来指定bean的标识符,用 name
属性指定的值通常又称为别名。
(3) id
属性只允许指定一个值,name
属性可以允许指定多个值,可以使用逗号(,
),分号(;
)或者空格来分割这些值。
(4)bean的id和name不是必须的。如果没有明确的name或者id,容易会给bean生成一个唯一的名字。
(5)id只能在定义Bean的时候定义,别名可以在定义的Bean的时候指定,也可以通过<alias/>
元素来完成bean别名的定义
2 命名示例
2.1 示例准备-User类
package com.ws.edu.spring;
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User() {
super();
}
public User(int id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
2.2 xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 使用id属性定义唯一标识符 -->
<bean id="user" class="com.ws.edu.spring.User" />
<!-- 使用name属性定义唯一标识符 -->
<bean name="user1" class="com.ws.edu.spring.User" />
<!-- 使用name属性用逗号分隔定义多个标识符 -->
<bean name="user2,user3" class="com.ws.edu.spring.User" />
<!-- 使用name属性用分号分隔定义多个标识符 -->
<bean name="user4;user5" class="com.ws.edu.spring.User" />
<!-- 使用name属性用分号分隔定义多个标识符 -->
<bean name="user6 user7" class="com.ws.edu.spring.User" />
<!-- 使用alias标签定义别名 -->
<alias name="user" alias="user8"/>
<!-- 使用alias标签定义别名 -->
<alias name="user1" alias="user9"/>
</beans>
2.3 启动类
package com.ws.edu.spring;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
@SuppressWarnings("resource")
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
System.out.println(context.getBean("user",User.class));
System.out.println(context.getBean("user1",User.class));
System.out.println(context.getBean("user2",User.class));
System.out.println(context.getBean("user3",User.class));
System.out.println(context.getBean("user4",User.class));
System.out.println(context.getBean("user5",User.class));
System.out.println(context.getBean("user6",User.class));
System.out.println(context.getBean("user7",User.class));
System.out.println(context.getBean("user8",User.class));
System.out.println(context.getBean("user9",User.class));
}
}