Spring 中複雜類型的注入
下面開始 Spring 中複雜類型的注入:
package bean;/** * 學生類 */public class Student { private String no;//學號 private String name;// 姓名 private Grade grade;// 所屬年級 public void setNo(String no) { this.no = no; } public void setName(String name) { this.name = name; } public void setGrade(Grade grade) { this.grade = grade; } @Override public String toString() { return "Student [no=" + no + ", name=" + name + ", grade=" + grade + "]"; }}
package bean;/** * 年級類 */public class Grade { private int gid;//年級編號 private String gname;//年級名稱 public void setGid(int gid) { this.gid = gid; } public void setGname(String gname) { this.gname = gname; } @Override public String toString() { return "Grade [gid=" + gid + ", gname=" + gname + "]"; }}
1.注入類(一個 bean )
下面還是用 p 命名空間注入,看起來代碼比較少
<!-- 創建兩個年級 bean --><bean id="firstGrade" class="bean.Grade" p:gid="1" p:gname="一年級" /><bean id="secondGrade" class="bean.Grade" p:gid="2" p:gname="二年級" /><!-- 創建一個學生 bean --><!-- p:grade-ref 其中 ref 表示引用,當前已經配置好的 bean 的 id --><bean id="zxh" class="bean.Student" p:grade-ref="firstGrade" p:no="CHB12345" p:name="張小盒" />
運行結果如下:
沒有問題!!2. list 集合、數組注入
首先需要在 Student 類中新增屬性,這裡,新增的是 scores 分數
這裡用的是數組
applicationContext.xml 文件中,配置這樣一個 bean
<!-- 創建一個 bean,給這個類中的數組賦值 --><bean id="list" class="bean.Student"> <!-- 給 scores 屬性賦值 --> <property name="scores"> <!-- 該屬性是數組類型 --> <array> <value>56</value> <value>89</value> <value>75</value> <value>26</value> <value>55</value> <value>68</value> </array> </property></bean>
測試類:
下面進行 List<Class> 注入的示例:
在 Grade 類中添加屬性 students,一個年級中肯定有多個學生
毫無疑問的在 Grade 類中也要為 students 屬性添加 setter 方法
兩個類的 toString() 方法需要修改一下:
為了防止遞歸調用,把 Student 類中 toString() 方法中的 grade 的輸出刪除,加上
換行符,方便查看結果
在 Grade 類中 toString() 方法中,新增輸出 students
下面進行 applicationContext.xml 文件的配置
<bean id="lb" class="bean.Student" p:name="李白" p:no="CHB00000" /><bean id="grade" class="bean.Grade" p:gid="3" p:gname="三年級"> <!-- 給 students 屬性賦值 --> <property name="students"> <!-- 該屬性的類型為 list --> <list> <!-- 創建內部 bean --> <bean class="bean.Student" p:name="王小二" p:no="CHB11111" /> <bean class="bean.Student" p:name="張小三" p:no="CHB22222" /> <bean class="bean.Student" p:name="李小四" p:no="CHB33333" /> <bean class="bean.Student" p:name="何小五" p:no="CHB44444" /> <!-- 也可以用 ref 來引用外部類 --> <ref bean="lb" /> </list> </property></bean>
輸出結果...
沒有問題!!!3. Map 集合注入
為了這個例子呢,咱們需要在 Student 類中新增屬性 classmate,Map<String,Student> 類型;並且來個 getter 和 setter
String 用來放名字,Student 用來放這個同學的所有信息
applicationContext.xml 配置如下還是用的之前創建的 bean....測試類:
結果,肯定還是和我們想的一致嘍以上就是 複雜類型注入 的例子,有疑問,請留言!!
有不對的地方,還請多多提醒!!
轉載請說明出處,謝謝!!
推薦閱讀:
※Spring(2):IOC註解操作
※Spring當中有哪些註解可以使用?
※快速了解spring事務七種傳播方式、事務的4種隔離級別、臟讀、重複讀、幻讀;
※Spring 數據訪問(DAO層) 總結
TAG:Spring |