spring級(jí)聯(lián)屬性賦值的兩種方式解析
這篇文章主要介紹了spring級(jí)聯(lián)屬性賦值的兩種方式解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
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方法進(jìn)行賦值
在bean中需要賦值的屬性必須要有setter方法,同時(shí)bean中必須還要有一個(gè)無(wú)參的構(gòu)造方法。如若不顯示聲明,則默認(rèn)會(huì)有一個(gè)。
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>
關(guān)鍵就是標(biāo)紅的兩個(gè)代碼:先進(jìn)行關(guān)聯(lián),然后進(jìn)行級(jí)聯(lián)賦值。
二、利用構(gòu)造方法進(jìn)行級(jí)聯(lián)賦值
此時(shí),要在Person中加一個(gè)有參構(gòu)造方法:
public Student(String name, int age, double score, Car car) {
super();
this.name = name;
this.age = age;
this.score = score;
this.car = car;
}
在Car中加一個(gè)無(wú)參構(gòu)造方法:
public Car() {
}
同時(shí),對(duì)于這種方法,我們刪除掉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>
總結(jié):
1.利用setter方法進(jìn)行級(jí)聯(lián)屬性賦值需要:無(wú)參構(gòu)造方法、setter方法。
2.利用構(gòu)造器進(jìn)行級(jí)聯(lián)屬性賦值需要:有參構(gòu)造方法。
3.為級(jí)聯(lián)屬性賦值,屬性先要初始化之后才可以為級(jí)聯(lián)屬性賦值,否則會(huì)有異常,即:
<property name="car" ref="car"></property> <constructor-arg ref="car"></constructor-arg>
而在struct2中則不用,它會(huì)自動(dòng)進(jìn)行初始化。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- springmvc級(jí)聯(lián)屬性處理無(wú)法轉(zhuǎn)換異常問(wèn)題解決
- 詳解Hibernate cascade級(jí)聯(lián)屬性的CascadeType的用法
- spring源碼學(xué)習(xí)之bean的初始化以及循環(huán)引用
- mybatis中實(shí)現(xiàn)讓返回值與bean中字段相匹配
- SpringBoot普通類(lèi)獲取spring容器中bean的操作
- 解決Spring Boot 多模塊注入訪(fǎng)問(wèn)不到j(luò)ar包中的Bean問(wèn)題
- 通過(guò)工廠模式返回Spring Bean方法解析
- Spring中BeanFactory和ApplicationContext的作用和區(qū)別(推薦)
- Spring內(nèi)部bean和級(jí)聯(lián)屬性用法詳解
相關(guān)文章
自己動(dòng)手寫(xiě)的mybatis分頁(yè)插件(極其簡(jiǎn)單好用)
最近做了個(gè)項(xiàng)目,需要用到mybatis分頁(yè)功能,網(wǎng)上找了很多插件,都不太合適,于是就自己動(dòng)手寫(xiě)了個(gè)mybatis分頁(yè)插件功能,非常不錯(cuò),代碼簡(jiǎn)單易懂,需要的朋友參考下吧2016-11-11
Java設(shè)計(jì)模式模板方法(Template)原理解析
這篇文章主要介紹了Java設(shè)計(jì)模式模板方法(Template)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
關(guān)于Jackson的JSON工具類(lèi)封裝 JsonUtils用法
這篇文章主要介紹了關(guān)于Jackson的JSON工具類(lèi)封裝 JsonUtils用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
java實(shí)現(xiàn)簡(jiǎn)單租車(chē)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單租車(chē)系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
MyEclipse+Tomcat+MAVEN+SVN項(xiàng)目完整環(huán)境搭建(圖文教程)
這篇文章主要介紹了MyEclipse+Tomcat+MAVEN+SVN項(xiàng)目完整環(huán)境搭建(圖文教程),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-12-12
詳解HTTP請(qǐng)求與響應(yīng)基礎(chǔ)及實(shí)例
這篇文章主要介紹了詳解HTTP請(qǐng)求與響應(yīng)基礎(chǔ)及實(shí)例的相關(guān)資料,這里對(duì)http的請(qǐng)求和響應(yīng)進(jìn)行詳細(xì)分析并附有實(shí)現(xiàn)實(shí)例,需要的朋友可以參考下2017-07-07
Redis結(jié)合AOP與自定義注解實(shí)現(xiàn)分布式緩存流程詳解
項(xiàng)目中如果查詢(xún)數(shù)據(jù)是直接到MySQL數(shù)據(jù)庫(kù)中查詢(xún)的話(huà),會(huì)查磁盤(pán)走IO,效率會(huì)比較低,所以現(xiàn)在一般項(xiàng)目中都會(huì)使用緩存,目的就是提高查詢(xún)數(shù)據(jù)的速度,將數(shù)據(jù)存入緩存中,也就是內(nèi)存中,這樣查詢(xún)效率大大提高2022-11-11
項(xiàng)目打包成jar后包無(wú)法讀取src/main/resources下文件的解決
本文主要介紹了項(xiàng)目打包成jar后包無(wú)法讀取src/main/resources下文件的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04

