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

您的位置:首頁技術文章
文章詳情頁

Spring IOC和DI實現原理及實例解析

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

什么是Spring

Spring是一個以IoC和AOP為內核的框架。

IoC(Inversion of Control ,控制反轉)是Spring的基礎。

IoC簡單說就是創建對象由以前的程序員調用new 構造方法,變成了交由Spring創建對象。

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

簡單地說, DI就是對象的屬性,已經被注入好相關值了,直接使用即可。

Spring IOC和DI實現原理及實例解析

IoC-控制反轉

  把各個對象類封裝之后,通過IoC容器來關聯這些對象類。這樣對象與對象之間就通過IoC容器進行聯系,而對象與對象之間沒有什么直接聯系。Spring IOC和DI實現原理及實例解析

  應用程序在沒有引入IoC容器之前,對象A依賴對象B,那么A對象在實例化或者運行到某一點的時候,自己必須主動創建對象B或者使用已經創建好的對象B,其中不管是創建還是使用已創建的對象B,控制權都在應用程序自身。

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

DI-依賴注入

由IoC容器在運行期間,動態地將某種依賴關系注入到對象之中。例如,將對象B注入(賦值)給對象A的成員變量。

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

IoC與DI的實現

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

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

  (2)構造方法注入:指IoC容器使用構造方法注入被依賴的實例?;跇嬙旆椒ǖ囊蕾囎⑷胪ㄟ^調用帶參數的構造方法來實現,每個參數代表著一個依賴。

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創建其對象的實例 控制反轉 --><bean class='com.ssm.entry.UserDaoImpl'></bean><!-- 添加一個id為userService的Bean 依賴注入--><bean class='com.ssm.entry.UserServiceImpl'><!-- 將name為UserDao的Bean注入UserService實例中 --><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();}}

實體類及接口實現類略

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩高清中文字幕一区二区| 男女男精品网站| 五月婷婷亚洲| 国产99精品| 亚洲精品2区| 女人天堂亚洲aⅴ在线观看| 亚洲午夜电影| 日韩精品不卡一区二区| 国产精品福利在线观看播放| 国产一区二区三区不卡av| 精品一区av| 水蜜桃精品av一区二区| 黑森林国产精品av| 久久天堂av| 今天的高清视频免费播放成人| 欧美理论视频| 玖玖玖国产精品| 日韩1区2区3区| 免费在线日韩av| 日韩在线欧美| 欧美一区二区性| 久久亚洲视频| 7777精品| 成人在线视频区| 日韩综合精品| 国产精品日韩欧美一区| 日本精品国产| 国产一区丝袜| 激情欧美一区| 亚洲毛片在线| 美女性感视频久久| 亚洲人成在线网站| 首页国产欧美日韩丝袜| 国产探花在线精品| 国产精品国产三级国产在线观看| 视频福利一区| 在线观看一区| 久久国产三级| 中文字幕成在线观看| 好吊视频一区二区三区四区| 日本午夜精品久久久| 四虎国产精品免费观看| 亚洲欧美网站| 国产在线观看91一区二区三区| 九色精品91| 国产亚洲精品美女久久久久久久久久| 精品视频91| 红桃视频亚洲| 国产精品欧美三级在线观看| 天堂网av成人| 日韩精品亚洲专区| 日韩精品不卡一区二区| 免费日韩视频| 精品三区视频| 伊人久久大香伊蕉在人线观看热v| 久久99久久人婷婷精品综合| 亚洲香蕉网站| 久久av偷拍| 久久亚洲国产精品一区二区| 久久精品色播| 天堂成人免费av电影一区| 久久精品伊人| 免费在线看一区| 视频在线不卡免费观看| 亚洲精品大全| 欧美精品资源| 国产欧美高清| 黄色不卡一区| 久久精品毛片| 日本在线成人| 激情五月综合| 国产夫妻在线| 久久国内精品| 香蕉久久久久久久av网站| 麻豆视频在线观看免费网站黄| 五月激激激综合网色播| 久久久精品久久久久久96| 国产日韩中文在线中文字幕 | 91高清一区| 麻豆精品久久久| 综合在线一区| 91精品国产91久久久久久黑人| 国产精品最新| 亚洲最新av| 久久久久国产| 国产一区二区三区亚洲| 日韩欧美中文字幕电影| 欧美在线资源| 久久久蜜桃一区二区人| 欧美激情视频一区二区三区在线播放| 蜜臀va亚洲va欧美va天堂| 久久久一二三| 精品亚洲成人| 日韩高清一区二区| 久久国产精品久久w女人spa| 久久精品动漫| 精品美女视频 | 日韩高清一区二区| 一区二区国产在线观看| 亚洲激情社区| 久久国产中文字幕| 日韩av有码| 国产不卡精品| 国产精品jk白丝蜜臀av小说| 日韩国产在线观看| 亚洲一区二区日韩| 神马日本精品| 欧美成人基地 | 精品国产乱码久久久| 欧美私人啪啪vps| 亚洲青青久久| 亚洲欧美日韩专区| 亚洲激情另类| 午夜视频精品| 亚洲精品888| 不卡视频在线| 黄色av一区| 久久不射中文字幕| 日韩在线a电影| 一区二区三区国产在线| 欧美日韩国产综合网| 亚洲精品一区二区在线看| 久久九九99| 91九色精品| 伊人影院久久| 国产一区二区高清| 午夜亚洲一区| 亚洲精品系列| 亚洲精品黄色| 国产欧美日韩一级| 另类欧美日韩国产在线| 精品一区视频| 亚洲日本网址| 91久久久精品国产| 先锋影音国产一区| 亚洲精品综合| 国产精品最新自拍| 欧美激情国产在线| 久久亚洲成人| 日韩精品一二三区| 日韩一区二区三区免费视频| 久久激情av| 国产精品13p| 精品中文字幕一区二区三区av| 国产亚洲亚洲| 日本午夜免费一区二区| 国产精品v亚洲精品v日韩精品| 精品国产一区二| 999久久久国产精品| 亚洲免费中文| 日精品一区二区三区| 国产欧美一级| 天堂av在线| 99国产成+人+综合+亚洲欧美| 亚洲精品乱码日韩| 捆绑调教美女网站视频一区 | 美女一区网站| 欧美天堂亚洲电影院在线观看| 亚洲三级毛片| 另类综合日韩欧美亚洲| 久久久久国产精品一区三寸| 蜜臀av在线播放一区二区三区| 国产欧美三级| 蜜桃av在线播放| 视频一区国产视频| 免费在线成人| 国产精品毛片一区二区三区| 国产伦精品一区二区三区视频| 91综合视频| 爽好久久久欧美精品| 麻豆精品在线观看| 亚洲国产一区二区在线观看 | av亚洲一区二区三区| 蜜桃一区二区三区在线观看| 久久的色偷偷| 九一精品国产| 国产日韩视频| 欧美.日韩.国产.一区.二区 | 国产欧美一区二区色老头| 天堂av在线| 日本精品另类| 国产一区清纯| 国产精品**亚洲精品| 欧美精品一区二区三区精品| 国产午夜精品一区在线观看| 欧美精品羞羞答答| 国产精品夜夜夜| 亚洲精品91| 久久亚洲人体| 鲁大师影院一区二区三区| 国产成人精品一区二区三区视频| 香蕉视频成人在线观看| 日产精品一区二区| 日韩欧美三区| 99视频精品视频高清免费| 国产亚洲欧美日韩精品一区二区三区| 激情偷拍久久| 国产精品久久久久久久久妇女| 日韩精品国产欧美| 国产精品88久久久久久|