ioc,inversion of control,控制倒轉。這是spring的核心,貫穿始終。所謂ioc,對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係。di,dependency injection,依賴注入。在系統執行中,動態的向某個物件提供它所需要的其他物件。
控制的什麼被反轉了?就是:獲得依賴物件的方式反轉了。
如何找女朋友的?首先建立動物介面animal在乙個物件中,如果要使用另外的物件,就必須得到它(自己new乙個,或者從jndi中查詢乙個),使用完之後還要將物件銷毀(比如connection等),物件始終會和其他的介面或類藕合起來。
那麼ioc是如何做的呢?
有點類似婚介所,乙個婚介所有很多男男**的個人資訊,我可以向婚介所提出要求,比如長得像高圓圓,身材像林熙蕾等等,然後婚介所就會按照我們的要求,提供符合要求的乙個mm資訊,我們只需要去和mm談朋友就好了。如果婚介所給我們的人選不符合要求,我們就提出不交往。整個過程不再由我自己來控制,而是由婚介所類控制中間環節。spring開發也是如此,所有的類都會在spring容器中登記,告訴spring你是什麼,你需要什麼,然後spring會在系統執行到適當的時候,把你需要的東西主動給你,同時也把你交給其他需要的你的類。所有類的建立、銷毀都由spring來控制,也就是說控制物件生存週期不再是引用它的物件,而是spring。對於某個物件而言,以前是它控制其他物件,現在是所有物件都被spring控制,所以就叫控制反轉。
package com.feiniu.springframework.test;
public
inte***ce animal
接著建立動物實現類cat
package com.feiniu.springframework.test;
public
class
catimplements
animal
public string getname()
public
void
setname(string name)
}
<?xml version="1.0" encoding="utf-8"?>
xmlns=""
xmlns:xsi=""
xmlns:aop=""
xmlns:task=""
xmlns:context=""
xmlns:tx=""
xsi:schemalocation=" /spring-beans.xsd
/spring-aop.xsd
/spring-context.xsd
/spring-tx.xsd
/spring-task-3.1.xsd"
default-autowire="byname">
id="animal"
class="com.feiniu.springframework.test.cat">
name="name"
value="kitty" />
bean>
beans>
最後建立測試類testanimal
package com.feiniu.springframework.test;
public
class
testanimal
}
執行main方法控制台結果
i am kitty!
CSS 原理理解
網頁製作最初,html規定了 normal document stream 標準文件流 來規範元素在網頁中的顯示法則 標準文件流中元素分兩種 塊內元素,行內元素。行內元素的特點 span標籤 豎直margin中的塌陷現象,上下緊密排列的元素的外邊距並不是兩個元素外邊距之和,而是選取那個最大的外邊距作...
ROI Align 原理理解
對背景問題的理解 之前一直在想乙個問題 乙個label在原圖上標記出乙個包含目標的區域。這個框在特徵提取後,大小被縮小到了什麼程度?如果這個label框本身就不大,那麼經過幾層池化之後,是不是在最後的feature map上都沒有乙個位置,能夠對應到這個區域?目標在特徵提取過程中,由於這種深度結構導...
補碼原理理解
今天上課靈機一動想到了補碼的原理 補碼是由原碼變換而來,原碼就是帶符號的二進位制數。正數的補碼與原碼一樣,負數的補碼是由原碼取反 除了符號位 後加一得到的。舉個例子 正數 1 的原碼為 0000 0001 對應的補碼為 0000 0001 負數 1 的原碼為 1000 0001 對應的補碼為 111...