1. 程式人生 > 實用技巧 >id和name的區別

id和name的區別

在 XML 配置中,我們可以看到,即可以通過 id 給 Bean 指定一個唯一識別符號,也可以通過 name
來指定,大部分情況下這兩個作用是一樣的,有一個小小區別:

name 支援取多個。多個 name 之間,用 , 隔開:

<bean class="org.javaboy.User" name="user,user1,user2,user3" scope="prototype"/>

此時,通過 user、user1、user2、user3 都可以獲取到當前物件:

public class Main {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        User user = ctx.getBean("user", User.class);
        User user2 = ctx.getBean("user2", User.class);
        System.out.println(user);
        System.out.println(user2);
    }
}

而id不支援有多個值,如果強行用,隔開,它還是一個值,例如如下配置:

<bean class="org.javaboy.User" id="user,user1,user2,user3" scope="prototype" />

這個配置表示 Bean 的名字為 user,user1,user2,user3,具體呼叫如下

public class Main {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        User user = ctx.getBean("user,user1,user2,user3", User.class);
        User user2 = ctx.getBean("user,user1,user2,user3", User.class);
        System.out.println(user);
        System.out.println(user2);
    }
}