日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring IOC和DI實(shí)現(xiàn)原理及實(shí)例解析

瀏覽:105日期:2023-08-31 17:43:52

什么是Spring

Spring是一個(gè)以IoC和AOP為內(nèi)核的框架。

IoC(Inversion of Control ,控制反轉(zhuǎn))是Spring的基礎(chǔ)。

IoC簡單說就是創(chuàng)建對象由以前的程序員調(diào)用new 構(gòu)造方法,變成了交由Spring創(chuàng)建對象。

DI(Dependency Inject,依賴注入)與IoC的含義相同,只不過這兩個(gè)稱呼是從兩個(gè)角度描述的同一個(gè)概念。

簡單地說, DI就是對象的屬性,已經(jīng)被注入好相關(guān)值了,直接使用即可。

Spring IOC和DI實(shí)現(xiàn)原理及實(shí)例解析

IoC-控制反轉(zhuǎn)

  把各個(gè)對象類封裝之后,通過IoC容器來關(guān)聯(lián)這些對象類。這樣對象與對象之間就通過IoC容器進(jìn)行聯(lián)系,而對象與對象之間沒有什么直接聯(lián)系。Spring IOC和DI實(shí)現(xiàn)原理及實(shí)例解析

  應(yīng)用程序在沒有引入IoC容器之前,對象A依賴對象B,那么A對象在實(shí)例化或者運(yùn)行到某一點(diǎn)的時(shí)候,自己必須主動(dòng)創(chuàng)建對象B或者使用已經(jīng)創(chuàng)建好的對象B,其中不管是創(chuàng)建還是使用已創(chuàng)建的對象B,控制權(quán)都在應(yīng)用程序自身。

  如果應(yīng)用程序引入了Ioc容器之后,對象A和對象B之間失去了直接聯(lián)系,所以,當(dāng)對象A實(shí)例化和運(yùn)行時(shí),如果需要對象B的話,IoC容器會(huì)主動(dòng)創(chuàng)建一個(gè)對象B注入(即依賴注入)到對象A所需要的地方。由此,對象A獲得依賴對象B的過程,由主動(dòng)行為變成了被動(dòng)行為,即把創(chuàng)建對象交給了IoC容器處理,控制權(quán)顛倒過來了,這就是所謂的控制反轉(zhuǎn)。

DI-依賴注入

由IoC容器在運(yùn)行期間,動(dòng)態(tài)地將某種依賴關(guān)系注入到對象之中。例如,將對象B注入(賦值)給對象A的成員變量。

  事實(shí)上,依賴注入(DI)和控制反轉(zhuǎn)(IoC)是對同一件事情的不同描述,從某個(gè)方面講,就是它們描述的角度不同。依賴注入是從應(yīng)用程序的角度在描述,即應(yīng)用程序依賴容器創(chuàng)建并注入它所需要的外部資源;而控制反轉(zhuǎn)是從容器的角度在描述,即容器控制應(yīng)用程序,由容器反向的向應(yīng)用程序注入應(yīng)用程序所需要的外部資源。這里所說的外部資源可以是外部實(shí)例對象,也可能是外部文件對象等。

IoC與DI的實(shí)現(xiàn)

  (1)屬性setter方法注入:指IoC容器使用setter方法注入被依賴的實(shí)例。通過調(diào)用無參構(gòu)造器或無參靜態(tài)工廠方法實(shí)例化Bean后,調(diào)用該Bean的setter方法,即可實(shí)現(xiàn)基于setter方法的依賴注入。該方式簡單、直觀,而且容易理解,所以Spring的設(shè)置注入被大量使用。

package com.ssm.entry;public class UserServiceImpl implements UserService {private UserDao userDao;// setter()實(shí)現(xiàn)依賴注入public void setUserDao(UserDao userDao){this.userDao = userDao;}public void login() {this.userDao.login();System.out.println('UserService login');}}

  (2)構(gòu)造方法注入:指IoC容器使用構(gòu)造方法注入被依賴的實(shí)例?;跇?gòu)造方法的依賴注入通過調(diào)用帶參數(shù)的構(gòu)造方法來實(shí)現(xiàn),每個(gè)參數(shù)代表著一個(gè)依賴。

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-4.3.xsd'><!-- 將指定類配置給Spring,讓Spring創(chuàng)建其對象的實(shí)例 控制反轉(zhuǎn) --><bean class='com.ssm.entry.UserDaoImpl'></bean><!-- 添加一個(gè)id為userService的Bean 依賴注入--><bean class='com.ssm.entry.UserServiceImpl'><!-- 將name為UserDao的Bean注入U(xiǎn)serService實(shí)例中 --><property name='UserDao' ref='UserDao'/></bean></beans>

IoC測試

package com.ssm.entry;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class IoC {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext('applicationContext.xml');UserDao userDao = (UserDao)applicationContext.getBean('UserDao');userDao.login();}}

DI測試

package com.ssm.entry;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class DI {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext('applicationContext.xml');UserService userService = (UserService)applicationContext.getBean('UserService');userService.login();}}

實(shí)體類及接口實(shí)現(xiàn)類略

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
激情丁香综合| 国产精品qvod| 国产亚洲字幕| 一区二区精品| 偷拍亚洲精品| 日韩在线卡一卡二| 日韩高清一区二区| 国产日韩中文在线中文字幕| 国产欧美91| 国产成人精选| 精品一区av| 99久久久久国产精品| 亚洲黄色影院| 日韩在线观看一区二区三区| 蜜臀a∨国产成人精品| 日韩高清中文字幕一区| 国产精品调教| 国产一区二区三区日韩精品| 理论片午夜视频在线观看| 婷婷综合六月| 久久不射网站| 免费亚洲一区| 亚洲一级少妇| 亚洲青青久久| 狠狠久久伊人| 欧美日韩尤物久久| 日本在线视频一区二区| 色爱综合网欧美| 红杏一区二区三区| 亚洲天堂成人| 婷婷成人av| 成人午夜网址| 亚洲制服少妇| 精品国产亚洲日本| 久久国产精品亚洲77777| 久久av免费| 亚洲高清二区| 欧美亚洲福利| 亚洲韩日在线| 国产精品va| 播放一区二区| 国产欧美在线观看免费| 欧美色图一区| 日本一区二区三区视频在线看| 免费日韩成人| 中文在线一区| 国产成年精品| 亚洲精品高潮| 欧美午夜精彩| 精品一区av| 中文字幕av亚洲精品一部二部| 首页国产精品| 日本精品久久| 欧美专区18| 成人精品亚洲| 欧美日韩亚洲一区| 男人操女人的视频在线观看欧美| 韩日一区二区| 7m精品国产导航在线| 激情偷拍久久| www.51av欧美视频| 国产精品成人3p一区二区三区| 日韩在线一二三区| 欧美69视频| 欧美三级精品| 国产夫妻在线| 久久99免费视频| 奇米亚洲欧美| 亚洲免费毛片| 国产视频一区免费看| 国产成人久久精品一区二区三区| 青青青国产精品| 天堂俺去俺来也www久久婷婷| 国产国产精品| 久久久精品网| 国产精品久久久久久久免费观看 | 模特精品在线| 亚洲成a人片| 久久亚洲人体| 石原莉奈一区二区三区在线观看| 亚洲人成在线网站| 高清久久一区| 国产日韩电影| 97精品国产| 福利精品在线| 成人台湾亚洲精品一区二区| 国产精品玖玖玖在线资源| 亚洲三级在线| 日韩精品免费一区二区夜夜嗨| 蜜桃久久久久久| 亚洲综合欧美| 中文字幕一区二区三区四区久久| 蜜臀久久99精品久久久久宅男 | 美女被久久久| 国产亚洲毛片在线| 一本色道久久精品| 黄色不卡一区| 亚洲精品成人| 亚洲欧美日本国产专区一区| 鲁大师影院一区二区三区| 美日韩精品视频| 中文字幕亚洲影视| 国产亚洲久久| 国产精品日本一区二区不卡视频| 国产情侣久久| 精品中国亚洲| 国产精品伦理久久久久久| 日本一区二区免费高清| 裤袜国产欧美精品一区| 日韩专区精品| 黄色亚洲免费| 日韩黄色在线观看| 久久精品国产999大香线蕉| 91综合网人人| 欧美日韩国产欧| 日韩精品免费一区二区夜夜嗨 | 亚洲欧美网站| 日本综合视频| 国产三级一区| 国产一区二区三区不卡av| 久久久久久免费视频| 男人天堂欧美日韩| 欧美在线看片| 青青久久av| 亚洲精品少妇| 国产精品成人a在线观看| 亚洲精品网址| 欧美日韩精品一区二区三区视频 | 欧美亚洲tv| 日韩美女一区二区三区在线观看| 亚洲精品网址| 日韩国产在线观看| 国产精品欧美在线观看| 日韩激情一区| 综合亚洲自拍| 韩国久久久久久| 日韩在线网址| 色偷偷色偷偷色偷偷在线视频| 欧美日韩四区| 欧美精品国产| 欧美理论视频| 国产日韩一区二区三区在线| 日韩在线观看不卡| 日本成人在线不卡视频| 91一区二区三区四区| 视频一区二区国产| 日韩88av| 少妇精品久久久一区二区三区| 国产在线观看91一区二区三区 | 日韩高清在线一区| 久久久精品午夜少妇| 91国内精品| 国产高清一区二区| 久久亚洲人体| 视频一区日韩精品| 91精品在线观看国产| 日本伊人久久| 欧美一区二区性| 日本少妇精品亚洲第一区| 久久精选视频| 老司机精品视频网| 亚洲日产av中文字幕| 日韩精品不卡一区二区| 青草久久视频| 亚洲激情中文| 高清一区二区三区av| 欧美亚洲国产日韩| 久久高清免费观看| 91精品一区二区三区综合| 国产精品v日韩精品v欧美精品网站| 99国产精品久久久久久久| 日本在线啊啊| 精品国产aⅴ| 人人精品久久| 久热精品在线| 免费观看久久av| 日韩久久精品| 久久伊人久久| 97成人在线| 亚洲欧美网站在线观看| 在线亚洲精品| 亚洲精品极品少妇16p| 久久精品国内一区二区三区水蜜桃| 久久影院一区二区三区| 欧美日韩一区二区国产| 日本综合精品一区| 亚洲三级在线| 蜜臀精品一区二区三区在线观看| 日本欧美不卡| 国产v综合v| 亚洲综合电影| 黄毛片在线观看| 精品国产精品久久一区免费式| 国产精品久久久亚洲一区| 欧美久久亚洲| 国产精品久久久久久妇女| 日韩av黄色在线| 日韩激情网站| 国产三级一区| 久久影视三级福利片|