日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring学习4之依赖注入(DI)

發布時間:2025/3/21 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring学习4之依赖注入(DI) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

上節學習了IOC創建對象的方式,我們在不知不覺中使用了最簡單的構造注入,什么是構造注入,什么又是依賴注入呢?

一、首先我們要了解DI是什么?

創建對象的過程中Spring可以依據配置對象的屬性進行設置,這個過程稱之為依賴注入,也即DI。
顧名思義,你就會明白構造注入就是通過構造方法給屬性進行賦值。

二、DI的幾種注入方式

需要用到的實體類:

package com.shan.pojo;import lombok.Data; import lombok.ToString;@Data @ToString public class Address {private String address; } package com.shan.pojo;import lombok.Data; import lombok.ToString;import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; @Data @ToString public class Student {private String name;private Address address;private String[] books;private List<String> hobbies;private Map<String,String> card;private Set<String> games;private String wife;private Properties info; } package com.shan.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString;@Data @ToString @NoArgsConstructor @AllArgsConstructor public class User {private String name;private String age;}

1.普通注入

<!--普通注入--><property name="name" value="小黑神"/>

2.Bean注入

<!--Bean注入--><property name="address" ref="address"/>

3.數組注入

<!--數組注入--><property name="books"><array><value>紅樓夢</value><value>西游記</value><value>水滸傳</value><value>三國演義</value></array></property>

4.List注入

<!--List集合注入--><property name="hobbies"><list><value>女朋友</value><value>敲代碼</value><value>刷抖音</value><value>看小說</value><value>玩游戲</value></list></property>

5.Map注入

<!--Map注入--><property name="card"><map><entry key="身份證" value="42102220001002xxxx"/><entry key="學生證" value="18103020134"/><entry key="銀行卡" value="666666666666666666"/></map></property>

6.Set注入

<!--Set集合注入--><property name="games"><set><value>lol</value><value>coc</value><value>bob</value><value>cs</value><value>永劫無間</value></set></property>

7.null注入

<!--null注入--><property name="wife"><value>null</value></property>

8.Properties注入

<!--Properties集合注入--><property name="info"><props><prop key="學號">18103020134</prop><prop key="性別"></prop><prop key="username">root</prop><prop key="password">xxx</prop></props></property>

拓展注入

<!--拓展注入方式p命名空間和c命名空間不能是直接使用,需要導入xml約束!xmlns:p="http://www.springframework.org/schema/p"xmlns:c="http://www.springframework.org/schema/c"--><!--p命名空間注入,可以直接注入屬性的值:property--><bean id="user" class="com.shan.pojo.User" p:name="小黑神" p:age="18"/><!--c命名空間注入,可以通過構造器注入:construct-args--><bean id="user2" class="com.shan.pojo.User" c:name="小黑神zxs" c:age="18" scope="singleton"/><!--作用域scope="singleton" 單例模式 Spring默認scope="prototype" 原型模式 每次從容器中get的時候都會產生一個新對象!-->

測試

import com.shan.pojo.Student; import com.shan.pojo.User; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext;public class MyTest {@Testpublic void testStudent(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");Student student = (Student) context.getBean("student");System.out.println(student);}@Testpublic void testUser(){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("userbean.xml");User user = context.getBean("user", User.class);User user2 = context.getBean("user2", User.class);System.out.println(user);System.out.println(user2);}//User(name=小黑神, age=18)//User(name=小黑神zxs, age=18)}

作者有話說

博客創作不易,希望看到這里的讀者動動你的小手點個贊,如果喜歡的小伙伴可以一鍵三連,作者大大在這里給大家謝謝了。

總結

以上是生活随笔為你收集整理的Spring学习4之依赖注入(DI)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。