我正在創建一個具有兩個請求範圍的bean的類。豆子類註解爲:Spring請求範圍的bean - 所有字段爲空/空
@Component
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestScopedBean1 {
// stuff
}
以及它們在我的類字段聲明:
@Resource
private RequestScopedBean1 requestScopedBean1
@Resource
private RequestScopedBean2 requestScopedBean2
該系統已用於全國各地的代碼庫,我沒有問題工作。但是,在我的類中,其中一個注入的bean(不是兩個,只有一個!)的所有字段都是null/empty。
我知道,僅僅在調試模式下查看請求範圍的bean的字段通常會顯示它們全都爲null,因爲Spring的代理如何管理這些bean。我也知道,應該使用getter和setter來訪問這些字段,而不是直接出於同樣的原因。但是,在intelliJ中使用Evaluate Expression函數時,該bean仍然顯示爲空/空。
我的類和每個bean類都在不同的項目中。工作bean是核心項目。破壞的bean在一個依賴於核心項目的項目中,而我的類在一個依賴於破壞的bean項目的項目中。
請讓我知道,如果您需要更多的信息來幫助我在這裏!
編輯我的XML配置文件的簡要說明:
有4個相關項目,讓我們稱他們爲「核心」,「網頁」,「普通」和「具體的」。每個應用程序都有自己對應的application-context.xml應用程序從「特定」項目構建的.war文件進行部署。在「特定」web.xml的標籤中,導入了「web」和「特定」的應用程序上下文。 'specific'application-context.xml的第一行導入'common'的應用程序上下文,這是我的新類所在的地方。 'web'application-context.xml的第一行導入'核心'應用程序上下文。工作請求範圍的bean駐留在'core'中;在'網絡'中的破碎的一個。我希望這一點很明確 - 如果不是,請告訴我!其他信息會有用嗎?
你可以發佈你的web.xml和spring context xml以及不同的bean的包名稱。我想知道的是,如果您設置了不同的應用程序上下文,並且您的非工作bean是在不支持Web的上下文中創建的(在這種情況下請求範圍將不起作用)。 – pap
我不認爲它是相關的,但你不做重定向或類似的東西,而不是一個前鋒? –
我無法發佈他們,但我會盡我所能來形容他們: –