最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring的IOC代碼解析

 更新時間:2017年12月25日 10:43:48   作者:人圭先生  
這篇文章主要介紹了Spring的IOC代碼解析,具有一定借鑒價值,需要的朋友可以參考下。

IOC通常就是我們所說的控制反轉(zhuǎn),它也是屬于java中的重點,在面試的時候常常會被問到。

控制反轉(zhuǎn)(Inversion of Control,英文縮寫為IoC)把創(chuàng)建對象的權(quán)利交給框架,是框架的重要特征,并非面向?qū)ο缶幊痰膶S眯g(shù)語。它包括依賴注入(Dependency Injection,簡稱DI)和依賴查找(Dependency Lookup)。

IOC使得程序獲取對象的方式發(fā)生了改變,由開始的new一個對象轉(zhuǎn)變?yōu)榈谌娇蚣艿膭?chuàng)建和注入。第三方框架一般是通過配置指定具體注入哪一個實現(xiàn),從而降低源代碼的耦合性。

ioc最大的好處是什么?

因為把對象生成放在了XML里定義,所以當我們需要換一個實現(xiàn)子類將會變成很簡單(一般這樣的對象都是現(xiàn)實于某種接口的),只要修改XML就可以了,這樣我們甚至可以實現(xiàn)對象的熱插撥(有點象USB接口和SCIS硬盤了)。

IOC依據(jù)實現(xiàn)的方式不同可分為依賴注入(DI)和依賴查找

DI是控制反轉(zhuǎn)的主要技術(shù)途徑,分為setter注入和構(gòu)造器注入

setter注入

通過調(diào)用無參構(gòu)造器或者static無參工廠方法實例化bean之后,調(diào)用bean的setter方法實現(xiàn)setter注入。

public class JDBCDataSource(){
	private String driver;
	public void setDriver(String driver){
		Class.forName(driver);
		this.driver=driver;
	}
}
.........
 ........

下來實現(xiàn)setter注入配置xml文件

<bean id="dataSource" class="org.csdn.JDBCDataSource">
 <property name="driver" value="oracle.jdbc.OracleDriver"/>
 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
 <property name="user" value="andreny"/>
 <property name="password" value="root"/>
 </bean>

構(gòu)造器注入

這個是通過調(diào)用帶參數(shù)的構(gòu)造器來實現(xiàn)的,容器在bean被實例化的時候,會根據(jù)參數(shù)類型執(zhí)行相應(yīng)的構(gòu)造器。

public class OracleUserDao implements UserDao{
	private JDBCDataSource dataSource;
	public OracleUserDao(JDBCDataSource dataSource){
		this.dataSource=dataSource;
	}
}
........
........

按構(gòu)造參數(shù)索引指定注入

<bean id="dataSource" class="org.csdn.JDBCDataSource">
 <proerty name="driver" value="oracle.jdbc.OracleDriver"/>
 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
 <property name="user" value="andreny"/>
 <property name="password" value="root"/>
</bean>
<bean id="userDao" class="org.csdn.OracleUserDao">
 <construtor-argindex="0" ref="dataSource"/>
</bean>

總結(jié)

以上就是本文關(guān)于Spring的IOC代碼解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

spring的IoC和DI詳解

Spring的Ioc模擬實現(xiàn)詳細介紹

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程

    win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程

    這篇文章主要為大家詳細介紹了win7 64位系統(tǒng)JDK安裝配置環(huán)境變量教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java基于Socket的文件傳輸實現(xiàn)方法

    Java基于Socket的文件傳輸實現(xiàn)方法

    這篇文章主要介紹了Java基于Socket的文件傳輸實現(xiàn)方法,結(jié)合實例分析了Java使用Socket實現(xiàn)文件傳輸?shù)慕⑦B接、發(fā)送與接收消息、文件傳輸?shù)认嚓P(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • 在MyBatis中實現(xiàn)一對多查詢和多對一查詢的方式詳解(各兩種方式)

    在MyBatis中實現(xiàn)一對多查詢和多對一查詢的方式詳解(各兩種方式)

    今天通過兩種方法分別給大家介紹在MyBatis中實現(xiàn)一對多查詢和多對一查詢的方式,每種方式通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2022-01-01
  • java.util.concurrent.ExecutionException 問題解決方法

    java.util.concurrent.ExecutionException 問題解決方法

    這篇文章主要介紹了java.util.concurrent.ExecutionException 問題解決方法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 一天時間用Java寫了個飛機大戰(zhàn)游戲,朋友直呼高手

    一天時間用Java寫了個飛機大戰(zhàn)游戲,朋友直呼高手

    前兩天我發(fā)現(xiàn)論壇有兩篇飛機大戰(zhàn)的文章異?;鸨?但都是python寫的,竟然不是我大Java,說實話作為老java選手,我心里是有那么一些失落的,今天特地整理了這篇文章,需要的朋友可以參考下
    2021-05-05
  • Java 求解如何把二叉搜索樹轉(zhuǎn)換為累加樹

    Java 求解如何把二叉搜索樹轉(zhuǎn)換為累加樹

    這篇文章主要介紹了Java 求解把二叉搜索樹轉(zhuǎn)換為累加樹的代碼,總之需要觀察示例節(jié)點的規(guī)律,需要記錄上個節(jié)點的情況,注意引入前驅(qū)節(jié)點pre,具體實例代碼跟隨小編一起看看吧
    2021-11-11
  • java 反射機制

    java 反射機制

    本文主要介紹了java反射機制的相關(guān)知識,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Curator實現(xiàn)zookeeper的節(jié)點監(jiān)聽詳解

    Curator實現(xiàn)zookeeper的節(jié)點監(jiān)聽詳解

    這篇文章主要介紹了Curator實現(xiàn)zookeeper的節(jié)點監(jiān)聽詳解,Curtor框架中一共有三個實現(xiàn)監(jiān)聽的方式,一種是NodeCache監(jiān)聽指定節(jié)點,一種是pathChildrenCache監(jiān)聽子節(jié)點,一種是TreeCache可以監(jiān)控所有節(jié)點 相當于以上兩種的合集,需要的朋友可以參考下
    2023-12-12
  • SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    這篇文章主要介紹了SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java中jstat命令的使用詳解

    Java中jstat命令的使用詳解

    jstat命令可以查看堆內(nèi)存各部分的使用量,以及加載類的數(shù)量,下面這篇文章主要給大家介紹了關(guān)于Java中jstat命令使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03

最新評論

卢龙县| 蒲城县| 赞皇县| 馆陶县| 永济市| 阿克陶县| 宿州市| 苏州市| 温宿县| 保康县| 江口县| 松江区| 盐源县| 互助| 年辖:市辖区| 衡水市| 于田县| 祁门县| 柞水县| 沾化县| 青海省| 萍乡市| 仪征市| 甘南县| 平阴县| 安乡县| 牙克石市| 冀州市| 财经| 灯塔市| 鹤山市| 青神县| 岳西县| 兴海县| 乌海市| 延吉市| 松潘县| 科尔| 长顺县| 合山市| 钦州市|