您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在spring中賦值級聯屬性,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Car.java
package com.gong.spring.beans; public class Car { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Car [name=" + name + "]"; } }
Student.java
package com.gong.spring.beans; public class Student { private String name; private int age; private double score; private Car car; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", score=" + score + ", car=" + car + "]"; } }
一、利用setter方法進行賦值
在bean中需要賦值的屬性必須要有setter方法,同時bean中必須還要有一個無參的構造方法。如若不顯示聲明,則默認會有一個。
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="car" class="com.gong.spring.beans.Car"></bean> <bean id="student" class="com.gong.spring.beans.Student"> <property name="name" value="tom"></property> <property name="age" value="12"></property> <property name="score" value="98.00"></property> <property name="car" ref="car"></property> <property name="car.name" value="baoma"></property> </bean> </beans>
關鍵就是標紅的兩個代碼:先進行關聯,然后進行級聯賦值。
二、利用構造方法進行級聯賦值
此時,要在Person中加一個有參構造方法:
public Student(String name, int age, double score, Car car) { super(); this.name = name; this.age = age; this.score = score; this.car = car; }
在Car中加一個無參構造方法:
public Car() { }
同時,對于這種方法,我們刪除掉Person中name、age、score屬性的getter和setter方法,保留car屬性的getter和setter方法,程序仍然是可行的。
在applicationContext.xml中:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="car" class="com.gong.spring.beans.Car"></bean> <bean id="student" class="com.gong.spring.beans.Student"> <constructor-arg value="tom"></constructor-arg> <constructor-arg value="12"></constructor-arg> <constructor-arg value="98.00"></constructor-arg> <constructor-arg ref="car"></constructor-arg> <property name="car.name" value="baoma"></property> </bean> </beans>
總結:
1.利用setter方法進行級聯屬性賦值需要:無參構造方法、setter方法。
2.利用構造器進行級聯屬性賦值需要:有參構造方法。
3.為級聯屬性賦值,屬性先要初始化之后才可以為級聯屬性賦值,否則會有異常,即:
<property name="car" ref="car"></property> <constructor-arg ref="car"></constructor-arg>
關于如何在spring中賦值級聯屬性就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。