spring之级联属性赋值的两种方式
发布时间:2020-12-15 01:13:41 所属栏目:大数据 来源:网络整理
导读:Car.java package com.gong.spring.beans; public class Car { private String name; public String getName() { return name; } void setName(String name) { this .name = name; } @Override String toString() { return "Car [name=" + name + "]" ; } }
Car.java package com.gong.spring.beans; public class Car { private String name; public String getName() { return name; } void setName(String name) { this.name = name; } @Override String toString() { return "Car [name=" + name + "]"; } } Student.java Student { String name; private int age; double score; Car car; name; } getAge() { age; } void setAge( age) { this.age = getScore() { score; } void setScore( score) { this.score = Car getCar() { car; } setCar(Car car) { this.car = car; } @Override 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,1)"> score,Car car) { super(); name; age; score; car; } 在Car中加一个无参构造方法: 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"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> 而在struct2中则不用,它会自动进行初始化。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |