IOC推導-2021-02-18

1、IOC推導

public class UserServiceImplimplements UserService{

? ? ?//第一種,直接new對象,每次新增都需要修改源代碼

? ? //private UserDao userDao = new UserMysqlDaoImpl();

? ? //private UserDao userDao = new UserDaoImpl();

? ? //第二種,set動態(tài)注入,不用修改源代碼,注入的時候修改

? ? private? UserDaouserDao;

? ? public void setUserDao(UserDao userDao) {this.userDao = userDao;}

? ? public void getUser(){userDao.getUser(); }

}

public class MyTest {

public static void main(String[] args) {

? ? ? ? UserServiceImpl service =new UserServiceImpl();

? ? ? ? //service.setUserDao(new UserMysqlDaoImpl());

? ? ? ? service.setUserDao(new UserOracleDaoImpl());

? ? ? ? service.getUser();

? ? }

}

根據(jù)用戶需求修改源代碼奉瘤,代碼量大的話,修改工作量大煮甥。使用set接口實現(xiàn)盗温,革命性變化。

之前成肘,程序是主動的卖局,控制權(quán)在程序猿手上。使用set之后双霍,程序不再具有主動性砚偶,而是被動接收對象。

這種思想從根本上解決問題洒闸,程序猿不用在管理對象的創(chuàng)建了染坯,系統(tǒng)耦合性降低,專注業(yè)務(wù)實現(xiàn)丘逸。

2单鹿、IOC本質(zhì)


主動權(quán)變更


IOC本質(zhì)


IOC管理對象

xml方式配置Bean,Bean的定義和實現(xiàn)分離深纲,而注解方式兩者合一仲锄,Bean的定義信息直接以注解的形式定義在實現(xiàn)類中從而達到零配置的目的劲妙。

控制反轉(zhuǎn)是一種通過描述(xml或注解)并通過第三方生產(chǎn)或獲取特定對象的方式。Spring中實現(xiàn)控制反轉(zhuǎn)的是IOC容器儒喊,其實現(xiàn)方式是依賴注入(DI)镣奋。

3、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">

? ? <!--spring創(chuàng)建對象Hello hello = new Hello();

? ? id 變量名? ? class new的對象? ? property 給對象屬性設(shè)置值-->

? ? <bean id="hello" class="com.kuang.pojo.Hello">

? ? ? <property name="name" value="Spring">

? ? </bean>

? ? <!--spring創(chuàng)建對象 ref 引用的對象 value 基本類型-->

? ? <bean id="mysqlDaoImpl" class="com.kuang.dao.UserMysqlDaoImpl"/>

? ? <bean id="oracleDaoImpl" class="com.kuang.dao.UserOracleDaoImpl"/>

? ? <bean id="userService" class="com.kuang.service.UserServiceImpl">

? ? ? ? ?<property name="userDao" ref="mysqlDaoImpl">

? ? ?</bean>

</beans>

spring創(chuàng)建對象怀愧,對象屬性在spring容器中設(shè)置唆途,這個過程叫做控制反轉(zhuǎn)。

控制指誰來控制對象創(chuàng)建掸驱,傳統(tǒng)對象由程序本身創(chuàng)建,使用spring后由spring創(chuàng)建没佑。

反轉(zhuǎn)指程序本身不創(chuàng)建對象毕贼,變成被動接收對象。

依賴注入就是set方法進行注入的蛤奢。

調(diào)用

//spring上下文對象

ApplicationContext applicationContext? =new ClassPathXmlApplicationContext("beans.xml");

//spring中獲取對象

Hello hello = (Hello) applicationContext.getBean("hello");

System.out.println(hello);

IOC就是對象由spring創(chuàng)建鬼癣、管理、裝配

以上參考啤贩,kuangshen視頻待秃。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痹屹,隨后出現(xiàn)的幾起案子章郁,更是在濱河造成了極大的恐慌,老刑警劉巖志衍,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暖庄,死亡現(xiàn)場離奇詭異,居然都是意外死亡楼肪,警方通過查閱死者的電腦和手機培廓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來春叫,“玉大人肩钠,你說我怎么就攤上這事≡葜常” “怎么了价匠?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長央星。 經(jīng)常有香客問我霞怀,道長,這世上最難降的妖魔是什么莉给? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任毙石,我火速辦了婚禮廉沮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徐矩。我一直安慰自己滞时,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布滤灯。 她就那樣靜靜地躺著坪稽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鳞骤。 梳的紋絲不亂的頭發(fā)上窒百,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音豫尽,去河邊找鬼篙梢。 笑死,一個胖子當著我的面吹牛美旧,可吹牛的內(nèi)容都是我干的渤滞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼榴嗅,長吁一口氣:“原來是場噩夢啊……” “哼妄呕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗽测,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤绪励,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后论咏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體优炬,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年厅贪,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢护。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡养涮,死狀恐怖葵硕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贯吓,我是刑警寧澤懈凹,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站悄谐,受9級特大地震影響介评,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一们陆、第九天 我趴在偏房一處隱蔽的房頂上張望寒瓦。 院中可真熱鬧,春花似錦坪仇、人聲如沸杂腰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喂很。三九已至,卻和暖如春皆刺,著一層夾襖步出監(jiān)牢的瞬間少辣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工羡蛾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毒坛,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓林说,卻偏偏與公主長得像,于是被迫代替她去往敵國和親屯伞。 傳聞我的和親對象是個殘疾皇子腿箩,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容