spring项目概念-IOCDI
生活随笔
收集整理的這篇文章主要介紹了
spring项目概念-IOCDI
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
IOC和DI,IOC和DI這兩個概念,這兩個概念其實特別的簡單,可以說打我們學JAVA以來,最簡單的思想了,IOC這三個字母,全寫是Inverse Of Control,翻譯過來就是,反轉控制,IOC反轉控制是啥意思呢,首先定義上來講,將我們創建對象的方式翻轉了,以前對象的創建,是由我們開發人員自己維護,包括依賴關系,也是自己注入,這我們舉個例子,例如咱們在action當中,需要service,那你us = new UserService,這是不是咱們自己創建的,那你看action,他是不是需要這個Service,那是不是咱們自己new出來的,那Service又需要啥啊,Service是不是也需要DAO提供基礎的數據庫操作,那咱們也是需要自己new出來,放到Service里面去,而你使用Spring的話,使用了Spring之后,他這種方式會反轉,以前是我們自己創建對象,給咱們的程序,而現在使用Spring之后,對象的創建,以及對象中的依賴關系,像Action需要Service,Service需要DAO,依賴關系,可以由咱們的Spring完成創建,Spring說白了就是一個容器,完成創建以及注入,由自己創建,反轉給了Spring,所以所謂的反轉控制,反轉的是什么呢,反轉控制就是反轉了對象的創建方式,從我們自己創建反轉給了程序,括號Spring,就這么點事,沒有深意,字面意思就可以了,由我們自己創建,變成由程序幫我們創建,這就是IOC
然后接下來再看DI,實際上DI概念比IOC概念還要再小一些,比IOC的概念還要小一些,DI的全寫是Dependecy Injection,翻譯過來就是依賴,后面的Injection就是注入,那你看這個名字你就知道,他這個范圍就要小一些,依賴注入說白了,就是實現IOC思想需要咱們的DI做支持,啥叫注入呢,簡單的來說,這個注入類型,注入方式,注入方式的話,咱們Spring當中,可以通過Set方法注入,然后你也可以通過構造方法注入,甚至還有一個不推薦的,屬性直接字段注入,直接注入到屬性字段當中,然后再從注入的類型來說,Spring支持值類型注入,然后咱們的Spring還支持引用類型注入,值類型注入和引用類型注入啥意思,比如剛才咱們寫的user對象,他有name和age兩個屬性,比如user對象創建出來以后,他有名字比較叫Tom,還有年齡叫18,實際上Tom和18這個值,我可以在配置文件里面進行配置,Spring會幫我配置一個值,交給咱們這個屬性,我可以通過配置,讓Spring創建出來之后,就是名叫Tom,age就是18,那剛才我說的這個例子,就是值類型注入,說白了就是8種基本數據類型,比如User對象當中新加一個屬性,叫做地址屬性,但是地址屬性給他封裝了,地址比如是哪一個國家,哪一個街道,可能我那對象來表示了,對象創建好,注入到user當中,其實咱們線程2的例子,咱們的Service會需要DAO,Action需要Service,那到時候咱們玩的時候,DAO注入到Service,Service注入到Action,那這個就叫做引用類型注入了,將對象注入,將依賴的對象注入,注入的方式,注入的時候Spring直接通過set注入,這個都不用解釋了,也可以聲明一個構造,通過構造也可以完成注入,還有一種不推薦的字段,字段是跳過get/set方法,直接對私有屬性進行注入,這些都是Spring支持的依賴注入的方法,所以實際上依賴注入可以看成是一個實際的技術了,是給IOC提供支持了,換句話講,反轉控制要想實現,是不是離不開依賴注入,依賴注入實現
依賴注入你可以看成是一個技術,依賴注入技術,然后這個技術對IOC,提供了技術上的支撐,只有實現DI技術,才能實現IOC思想,因為你要創建一個對象的話,這個對象或多或少會和其他對象有一個依賴關系,你需要完成注入,那IOC和DI就完事了,看文檔說的更短
IOC講對象的創建權交給Spring,DI需要有IOC的環境,DI的實現就是為了完成IOC思想的,Spring將類的屬性設置進去,那這又是咱們的理念
?
總結
以上是生活随笔為你收集整理的spring项目概念-IOCDI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring项目搭建-注册对象到容器测试
- 下一篇: spring项目概念-BeanFacto