當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring学习4之依赖注入(DI)
生活随笔
收集整理的這篇文章主要介紹了
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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring学习3之IOC创建对象的方式
- 下一篇: Spring学习5之自动装配Bean01