SpringIOC框架的簡(jiǎn)單實(shí)現(xiàn)步驟
簡(jiǎn)單介紹
依賴注入( Dependency Injection ,簡(jiǎn)稱 DI) 與控制反轉(zhuǎn) (IoC) 的含義相同,只不過這兩個(gè)稱呼是從兩個(gè)角度描述的同一個(gè)概念,具體如下:
- 依賴:bean對(duì)象的創(chuàng)建依賴于容器。
- 注入:bean對(duì)象中的所有屬性,由容器來(lái)注入。
- 控制反轉(zhuǎn)(IoC:依賴注入的另一種說法是“控制反轉(zhuǎn)”,通俗的理解是:平常我們new一個(gè)實(shí)例,這個(gè)實(shí)例的控制權(quán)是我們程序員,而控制反轉(zhuǎn)是指new實(shí)例工作不由我們程序員來(lái)做而是交給spring容器來(lái)做
依賴注入可以有效的解耦合。
具體實(shí)現(xiàn)
有兩種實(shí)現(xiàn)的方法,一種是配置xml文件來(lái)實(shí)現(xiàn),另一種是通過參數(shù)實(shí)現(xiàn),來(lái),找個(gè)簡(jiǎn)單的例子讓咱們上手試一試。(Intellij IDEA 2020)
首先,咱們先配置一下相關(guān)的jar包(pom.xml)
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.5</version> </dependency>
創(chuàng)建一個(gè)Pet接口,存放方法say()
public interface Pet { void say(); }
創(chuàng)建一個(gè)Person類
public class Person { private String name; private Pet pet; public void setName(String name) { this.name = name; } public void setPet(Pet pet) { this.pet = pet; } public void keepPet() { System.out.println(name + " 比" + pet + " 可愛,因?yàn)樗鼤?huì)說"); pet.say(); } }
創(chuàng)建一個(gè)Dog類,繼承Pet接口
public class Dog implements Pet{ private String name; public void setName(String name) { this.name = name; } @Override public String toString() { return name; } public void say(){ System.out.println("WangWang"); } }
重點(diǎn)來(lái)了,配置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="dog" class="Ex_04.Dog"> <property name="name" value="哈士奇"></property> </bean> <bean id="person" class="Ex_04.Person"> <property name="name" value="拉布拉多"></property> <property name="pet" ref="dog"></property> </bean> </beans>
- bean中class為你所創(chuàng)建的包的地址,即Dao層,Service層的地址,為了方便我將其放在一起。
- 為給dog類中name屬性賦值哈士奇。
- 元素value屬性為一個(gè)具體的值,ref為引用,該代碼中“ ref="dog" ”對(duì)應(yīng)的是dog類的屬性name,相當(dāng)于new,此處可以體現(xiàn)解耦合。
基本類已創(chuàng)建完畢,讓我們來(lái)創(chuàng)建一個(gè)實(shí)現(xiàn)類
輸出結(jié)果為:拉布拉多 比哈士奇 可愛,因?yàn)樗鼤?huì)說WangWang
總結(jié)
以上就就是以xml文件實(shí)現(xiàn)SpringIOC框架,如有錯(cuò)誤,麻煩指出,感謝耐心到現(xiàn)在的朋友
到此這篇關(guān)于SpringIOC框架簡(jiǎn)單實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringIOC框架簡(jiǎn)單實(shí)現(xiàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot中Controller中postman遇到的傳參問題及解決
這篇文章主要介紹了springboot中Controller中postman遇到的傳參問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07SpringBoot業(yè)務(wù)邏輯異常的處理方法介紹
本篇文章為大家展示了如何在SpringBoot中統(tǒng)一處理邏輯異常,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲2022-09-09MyEclipse2018中安裝Mybatis generator插件的實(shí)現(xiàn)步驟
這篇文章主要介紹了MyEclipse2018中安裝Mybatis generator插件的實(shí)現(xiàn)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2019-02-02java實(shí)現(xiàn)輕量型http代理服務(wù)器示例
這篇文章主要介紹了java實(shí)現(xiàn)輕量型http代理服務(wù)器示例,需要的朋友可以參考下2014-04-04