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);
    }
}
posted @ 2020-08-03 19:03  柒丶月  阅读(322)  评论(0编辑  收藏  举报