id和name的區別
阿新 • • 發佈:2020-08-03
在 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); } }