2.1、spring属性注入-Set方法注入
生活随笔
收集整理的這篇文章主要介紹了
2.1、spring属性注入-Set方法注入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼地址:spring2.1.zip - 藍奏云文件大小:15.1 K|https://www.lanzouw.com/imlEwvptwre
Set方法注入的原理是spring先通過指定id的類的無參構造函數創建對象,然后通過set方法進行賦值。所以,使用Set方法注入時必須保證類中定義了無參構造函數和Set方法。
1、定義Category和Product類,給屬性設置SetXYZ()方法,spring會通過set方法來給對象賦值
package com.how2j.pojo;public class Category {public int getId() {return id;}public void setId(int id) {this.id = id;}@Overridepublic String toString() {return "Category{" +"id=" + id +", name='" + name + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}private int id;private String name; } package com.how2j.pojo;public class Product {//普通屬于類型private int id;private String name;//引用類型private Category category;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Category getCategory() {return category;}public void setCategory(Category category) {this.category = category;}@Overridepublic String toString() {return "Product{" +"id=" + id +", name='" + name + '\'' +", category=" + category +'}';} }2、編寫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"><!-- 先定義Category類的jave bean,然后才能在Product中注入Category對象--> <!-- 使用propertiy注入屬性時,對應的類必須有setXYZ方法, 這里的name的值必須是對象類里的setXYZ的xYZ,注意X必須是小寫--><bean id="c" class="com.how2j.pojo.Category"> <!-- 如果是普通屬性,就使用value進行賦值--><property name="id" value="1"/><property name="name" value="category 1"/></bean><bean id="p" class="com.how2j.pojo.Product"><property name="name" value="product1"/> <!-- 如果是引用類型的屬性,就使用ref來注入引用對象, 這里c是定義的的其他的bean的標識,spring會自動創建一個c類型的對象,然后使用setXYZ方法傳入到p中--><property name="category" ref="c"/></bean> </beans>3、測試
package test;import com.how2j.pojo.Category; import com.how2j.pojo.Product; import org.junit.jupiter.api.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring {@Test//spring的控制翻轉public void test1(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml" );Category c = (Category) context.getBean("c");System.out.println(c);}@Test//測試spring的屬性注入public void test2(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml" );Product p = (Product) context.getBean("p");System.out.println(p);} }補充:目錄結構如下:
總結
以上是生活随笔為你收集整理的2.1、spring属性注入-Set方法注入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1、spring的IOC
- 下一篇: 2.3.1 spring属性注入-注解注