Spring哪些類需要注入,哪些不用

2023-01-01 11:00:48 字數 3758 閱讀 1968

1樓:黎凡

1全部基本上是這樣的,不過注入的話也分單例和多例,需要根據實際情況去設定,spring預設情況下都是單例的,但有些情況不適用單例,例如有全域性變數的時候,可能會有一些併發問題,可能就需要設定成多例

2樓:匿名使用者

注入與否看你的需要而不是根據型別來的。如果你需要這樣一個物件就注入進來。所謂的注入是指用spring管理物件的new。

在你需要的時候,spring就會new一個物件並注入到你使用的位置。例如:我spring配置了個bean叫計算器。

當我在 class計算中需要使用計算器來進行加法計算時,我會使用@autowired將計算器注入進來 。這樣我就可以使用計算器進行計算了。而計算完成後這個物件在什麼時候交給gc進行**由spring管理。

我就不用操心。spring配置中的那些系統設定bean一般是專案開始就需要的。所以在專案開始時就會讀取配置檔案並注入。

3樓:匿名使用者

整個action可以說是web容器的service方法的包裝過的類,是用來處理客戶端傳遞過來的請求的。 這個user只是一個屬性,引數而已,當客戶端傳送請求過來時,如果將user物件的一些屬性同時傳遞過來,那麼容器將會自動將user例項化

4樓:匿名使用者

controller service dao 需要注入

5樓:匿名使用者

$pwh@902901c17@56039971t$

spring中實體類為什麼不需要註冊成bean

6樓:匿名使用者

要理解為什麼不用注入,首先就清楚注入的目的是什麼?如果不注入,在程式中要使用某個類物件的方法,則需要去new一個物件。然後我們呼叫其中的方法,眾所周知「程式=演算法+資料」。

不失一般性,在物件導向開發中,類一般有兩種,一種是功能類的,主要是完成一些業務操作。一種是資料類,主要是儲存資料,比如pojo。我們資料提交上來後,自己組裝pojo(當然也有的框架可以幫我們組裝好),然後呼叫功能類的方法去操作這些資料,完成相應功能。

如果沒有使用注入的方式注入這些功能類物件,則會有空指標的問題。

spring只需要注入需要注入的,有些實體業務上是從其它地方獲得的,何必spring注入?

比如你說的例子一看就知道ssh框架,其中user例項應該是使用者錄入的,從頁面表單傳來的,是struts2幫你注入的。

userservice是個工具類,你需要獲取(也就是new)他的物件例項才能呼叫類內部的方法。

而user只是個pojo,是個存放資料的載體,並不需要獲取(也就是new)他的物件例項,而是從外面傳進來的。

所以userservice需要new一個,而user並不需。

而spring的注入機制其實就是代替了new的這個過程(稱為解耦),所以userservice需要注入,而user並不需要注入。

spring不用注入獲取bean,這樣獲取applicationcontext.getbean()有什麼好處嗎?

7樓:匿名使用者

是一樣的,new的方式也可以,但是這樣做就是控制連線資源分配了,要麼比較佔記憶體,大量訪問的時候讓伺服器負載過大

8樓:匿名使用者

首先要清楚spring其實就是一個工廠,這樣子充分體現了ioc/di的好處,你只要注入就可以是使用了。這是有spring建立的,不需要自己建立,所以記憶體什麼的就交給spring管理 了。

9樓:匿名使用者

個人認為。。如果用new來實現的話,還需要匯入複雜的包名,所以不如注入或者getbean來的方便。。至於注入和getbean的話,在這裡我暫時看不出太大的差別。。

10樓:匿名使用者

這個獲取出來的bean是spring來創的。。他裡面又可以注入很多其他的bean。要是你自己new就不行

11樓:匿名使用者

我接觸spring自動注入的時間並不長,依稀記得有一點,一個類裡可以使用自動注入其他bean的前提是這個類本身的管理也是要交給spring容器的。你呼叫這個方法所在的類可能並不是由spring來管理的,也就是說採用@autowired這種自動注入應該是無效的,在針對這種情形,spring確實提供這樣一種途徑,就是在無法自動注入的情況下,直接呼叫beanfactory去拿某個bean的例項,呼叫這樣方法得到的例項是跟自動注入得到的例項是一樣的。

但是如果你主動去new這樣一個bean,那spring容器是不會幫助你把這個bean裡的屬性初始化好的。

如果可以直接自動注入,誰不想省事一點呢,以上基本是我個人一點淺薄的專案經驗,希望對你有幫助。

spring依賴注入有什麼好處

12樓:萌小殤

spring通過一種稱作控制反轉(ioc)的技術促進了鬆耦合。當應用了ioc,一個物件依賴的其它物件會通過被動的方式傳遞進來,而不是這個物件自己建立或者查詢依賴物件。你可以認為ioc與jndi相反——不是物件從容器中查詢依賴,而是容器在物件初始化時不等物件請求就主動將依賴傳遞給它。

13樓:薩瑋濯香柳

依賴注入或者說是控制反轉,說白了就是使用了配置檔案,這種思想的唯一好處就是增加了模組的重用性靈活性。

一般配置檔案裡存的都是資料,鍵值之類的。spring的配置檔案把要引用類和要給類傳的引數都放到配置檔案裡,這樣比以前寫死在程式裡更靈活,因此更具重用性。

spring的注入和直接new一個物件有什麼不同?

14樓:大野瘦子

一、意思不同

spring依賴注入,是指物件在被建立的時候,由一個調控系統內所有物件的外界實體,將其所依賴的物件的引用,傳遞給它。

例如:a物件需要引用b物件的話,可以在a的建構函式裡面將b傳遞進去,或者呼叫a的某個set方法。

通俗一點就是spring已經new好了, 要用直接取拿。

二、順序

new一個物件的時候,初始化順序是:

父類靜態塊,子類靜態塊,父類屬性(先系統預設值,後直接你賦予的值) ,父類構造器,子類屬性,子類構造器。

三、要求

spring的依賴注入對呼叫者和被呼叫者幾乎沒有任何要求,完全支援對pojo之間依賴關係的管理,依賴注入通常有三種:

1、 set設值注入

2、構造方法注入

3、spring註解注入

15樓:無疆

spring實現了物件池,一些物件建立和使用完畢之後不會被銷燬,放進物件池(某種集合)以備下次使用,下次再需要這個物件,不new,直接從池裡出去來用。節省時間,節省cpu

16樓:匿名使用者

spring注入方便管理,依賴注入或者說是控制反轉,說白了就是使用了配置檔案,這種思想的唯一好處就是增加了模組的重用性靈活性。

一般配置檔案裡存的都是資料,鍵值之類的。spring的配置檔案把要引用類和要給類傳的引數都放到配置檔案裡,這樣比以前寫死在程式裡new一個物件更靈活,因此更具重用性。

17樓:

依賴注入,是指物件在被建立的時候,由一個調控系統內所有物件的外界實體,將其所依賴的物件的引用,傳遞給它。

注入有三種方式:建構函式傳遞,set方法設定,註解舉個例子:a物件需要引用b物件的話,可以在a的建構函式裡面將b傳遞進去,或者呼叫a的某個set方法,或者用註解的方式(jdk1.

5以上)

說到這裡,你應該明白從功能角度來講,依賴注入和new一個物件是沒有可比性的

開辦培訓學校類需要哪些手續證件

申辦職業培訓機構手續辦理 辦理部門 職業培訓處 一 申辦條件 具有法人資格的企業事業單位 社會團體及其他社會組織 或具有政治權利和完全民事行為能力的中國公民可以申請設立職業培訓機構。設立職業培訓機構需要具備的基本條件包括 一 有組織機構和管理制度 包括辦學章程與發展規劃 教學管理 教師管理 學生管理...

中國的外流河最終分別注入哪些海洋

中國河流分為外流河和內流河。注入海洋的外流河,流域面積約佔全國陸地總面積的64 長江 黃河 黑龍江 珠江 遼河 海河 淮河等向東流入太平洋 的雅魯藏布江向東流出國境再向南注入印度洋,這條河流上有長504.6公里 深6009米的世界第一大峽谷 雅魯藏布大峽谷 新疆的額爾齊斯河則向北流出國境注入北冰洋。...

民辦培訓學校需要哪些證件,開辦培訓學校類需要哪些手續證件?

要辦培訓機構,須具備4個條件 300平方米以上的房屋 10萬元流動資金 校長應有3年以上從教經歷 教師要有大專以上學歷。如具備上述條件,可向市教育局規劃科提供申請報告 辦學章程 房屋產權證 防火證明 辦學許可證。辦學許可證 是民辦培訓學校取得辦學資格的證明。各民辦培訓學校應嚴格遵照 中華人民共和國民...