亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

spring mvc,我的bean如何在控制器中自動裝配?

spring mvc,我的bean如何在控制器中自動裝配?

眼眸繁星 2021-09-26 17:45:48
我是 spring 和 spring mvc 的新手。我已經按照視頻教程配置了數據源和 mvc。我添加了一個上下文文件offers-servlet.xml在WEB-INF那里我掃描我的controllers包在我的controller.java所在。我創建了另一個上下文service-context.xml,其中我是組件掃描service.java類。我service.java在我的controller.javawithsetService方法中創建了一個實例,我用@Autowired. 我的疑問是如何service.java在我的controller.java每個文件中自動裝配,其中每個都在不同的包和具有不同 component-scan 的不同 context.xml 文件中。
查看完整描述

5 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

這個鏈接在這里解釋了在注釋的情況下的組件掃描。在您的情況下,您已通過 XML 配置了組件掃描。spring 中的每個 XML 定義都有其對應的注解定義。盡管此鏈接解釋了通過注釋配置組件掃描的情況,但它在您的情況下也完全有效:



查看完整回答
反對 回復 2021-09-26
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

如果 spring 容器知道 bean 位于不同的包中,則這些 bean 位于不同的包中這一事實并不重要。通過在兩個包中啟用組件掃描,您可以在應用程序的當前執行上下文中全局使用這兩個包中的所有 bean。

您可以將 spring IoC 視為全局映射,給定一個(先前注冊的)鍵,它可以為您提供與該鍵相關的實例。


查看完整回答
反對 回復 2021-09-26
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

當您提到組件掃描包時,它表示spring-container 在這些包中找到帶注釋的類,然后bean(具有@Component 或相關注釋的類的對象,如@Service、@Controller、@Repository)將是由 Spring 管理(從創建到銷毀的整個生命周期)。因此,在您的應用程序中,無論何時您需要一個這樣的 bean,而不是創建,它將由容器提供。另一方面,如果您沒有指定“組件掃描”,您將必須確定您希望 Spring-container 管理其 bean 的類(使用 xml 或 javaConfig)?,F在這部分是確定哪些 bean 將由 Spring-container 管理。

接下來是在需要的地方連接這些 bean。為此,您在 setter 方法中提到了 @Autowired。當 Spring-container 遇到這個注解時,它會在容器中尋找那個 bean(在你的例子中是服務 bean)。由于該 bean 由容器管理(來自上一步)并且在需要時可用(在您的情況下在控制器類中),容器將提供(自動連接)服務 bean 到 setter 方法中。


查看完整回答
反對 回復 2021-09-26
  • 5 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號