用到的student類
一、配置bean的時候,可以不設定id,也可以不設定name,spring會預設的使用類的全限定名作為bean的唯一識別符號。public class student
@override
public string tostring() ';
}}
//當配置bean時候沒有指定id和name時,spring預設使用類的全限定名作為bean的唯一識別符號
student student = (student)ctx.getbean(student.class.getcanonicalname());
system.out.println(student);
輸出:student
二、如果配置bean時,只設定了id屬性,那麼id就是作為bean的唯一識別符號,且id在spring容器中必須唯一。
student student1 = (student)ctx.getbean("student1");
system.out.println(student1);
輸出:student
三、如果配置bean時,沒有設定id屬性,只設定了name屬性,那麼name屬性就是作為bean的唯一識別符號,且name的值在spring容器中必須唯一。
student student2 = (student)ctx.getbean("student2");
system.out.println(student2);
輸出:student
四、如果同時設定了id和name屬性,那麼id設定的即為唯一識別符號,name設定的是別名。
student student3 = (student)ctx.getbean("student3");
system.out.println(student3);
string student3name = ctx.getaliases("student3");
system.out.println("student3的別名為:");
for(string s:student3name)
輸出:student
student3的別名為:
student33
五、如果同時設定了id和name屬性,並且id和name的值相同,spring容器會自動檢測並消除衝突,這個bean就只會有識別符號,而沒有別名。
student student4 = (student)ctx.getbean("student4");
system.out.println(student4);
string student4name = ctx.getaliases("student4");
system.out.println("student4的別名個數為:"+student4name.length);
輸出:student
student4的別名個數為:0
六、如果沒有設定id,而name屬性設定了多個值,那麼name的第乙個值會被用作識別符號,其他的值被視為別名。如果設定了id,那麼name的所有值都是別名。
student student5 = (student)ctx.getbean("student5");
system.out.println(student4);
string student5name = ctx.getaliases("student5");
system.out.println("student5的別名為:");
for(string s:student5name)
system.out.println("student5的別名個數為:"+student5name.length);
輸出:student
student5的別名為:
student6
student8
student7
student5的別名個數為:3
注意:
(1)不管是識別符號,還是別名,在容器中必需唯一。因為識別符號和別名,都是可以用來獲取bean的,如果不唯一,顯然不知道獲取的到底是哪乙個bean。
(2)識別符號和別名沒有任何區別,id和name屬性唯一的差別在於:id只能設定乙個值,而name可以設定多個值。
Spring配置中的id和name屬性區分
在spring容器管理的bean中,必須僅且只有乙個無重複的id。一般情況下,配置乙個bean時,需要指定它的id屬性作為bean的名稱。class com.learnspring.hellworld q 如果在spring環境下,如果出現多個配置id屬性值一樣的bean 如果在配置bean的時候並...
Spring配置中的id和name屬性區分
在spring容器管理的bean中,必須僅且只有乙個無重複的id。一般情況下,配置乙個bean時,需要指定它的id屬性作為bean的名稱。class com.learnspring.hellworld q 如果在spring環境下,如果出現多個配置id屬性值一樣的bean 如果在配置bean的時候並...
spring中的Bean的id和name的區別
spring中bean的命名 1 每個bean可以有乙個id屬性,並可以根據該id在ioc容器中查詢該bean,該id屬性值必須在ioc容器中唯一 2 可以不指定id屬性,只指定全限定類名,如 此時需要通過介面getbean class requiredtype 來獲取bean 如果該bean找不到...