當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
Spring学习4之依赖注入(DI)
生活随笔
收集整理的這篇文章主要介紹了
Spring学习4之依赖注入(DI)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
上節(jié)學(xué)習(xí)了IOC創(chuàng)建對(duì)象的方式,我們?cè)诓恢挥X(jué)中使用了最簡(jiǎn)單的構(gòu)造注入,什么是構(gòu)造注入,什么又是依賴注入呢?
一、首先我們要了解DI是什么?
創(chuàng)建對(duì)象的過(guò)程中Spring可以依據(jù)配置對(duì)象的屬性進(jìn)行設(shè)置,這個(gè)過(guò)程稱之為依賴注入,也即DI。
顧名思義,你就會(huì)明白構(gòu)造注入就是通過(guò)構(gòu)造方法給屬性進(jìn)行賦值。
二、DI的幾種注入方式
需要用到的實(shí)體類:
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.數(shù)組注入
<!--數(shù)組注入--><property name="books"><array><value>紅樓夢(mèng)</value><value>西游記</value><value>水滸傳</value><value>三國(guó)演義</value></array></property>4.List注入
<!--List集合注入--><property name="hobbies"><list><value>女朋友</value><value>敲代碼</value><value>刷抖音</value><value>看小說(shuō)</value><value>玩游戲</value></list></property>5.Map注入
<!--Map注入--><property name="card"><map><entry key="身份證" value="42102220001002xxxx"/><entry key="學(xué)生證" 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>永劫無(wú)間</value></set></property>7.null注入
<!--null注入--><property name="wife"><value>null</value></property>8.Properties注入
<!--Properties集合注入--><property name="info"><props><prop key="學(xué)號(hào)">18103020134</prop><prop key="性別">男</prop><prop key="username">root</prop><prop key="password">xxx</prop></props></property>拓展注入
<!--拓展注入方式p命名空間和c命名空間不能是直接使用,需要導(dǎo)入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命名空間注入,可以通過(guò)構(gòu)造器注入:construct-args--><bean id="user2" class="com.shan.pojo.User" c:name="小黑神zxs" c:age="18" scope="singleton"/><!--作用域scope="singleton" 單例模式 Spring默認(rèn)scope="prototype" 原型模式 每次從容器中g(shù)et的時(shí)候都會(huì)產(chǎn)生一個(gè)新對(duì)象!-->測(cè)試
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)}作者有話說(shuō)
博客創(chuàng)作不易,希望看到這里的讀者動(dòng)動(dòng)你的小手點(diǎn)個(gè)贊,如果喜歡的小伙伴可以一鍵三連,作者大大在這里給大家謝謝了。
總結(jié)
以上是生活随笔為你收集整理的Spring学习4之依赖注入(DI)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring学习3之IOC创建对象的方式
- 下一篇: Spring学习5之自动装配Bean01