簡體   English   中英

Spring安全性和@Configuration順序

[英]Spring security and @Configuration order

我正在使用@Configuration順序處理一些春季問題(通常涉及春季安全性,但還涉及此問題的標記中提到的其他技術),其中某些事物的初始化“太早”或“太晚”。

舉例說明: 自定義Tomcat時:配置默認Servlet處理時需要ServletContext。

答案通常是為某些bean創建單獨的@Configuration文件,然后開始工作。 我所得到的錯誤(堆棧跟蹤)的性質通常並不響,這可能是我的錯:)

有人可以指出我在哪里可以找到有關為什么創建單獨的@Configuration類有幫助以及如何確定@Configuration類的順序的信息嗎?

在堆棧跟蹤中要注意什么以識別此類問題的任何提示也將不勝感激。

它之所以有時有用的原因是因為它為Spring的bean創建順序提供了其他選擇。 一種(過度)簡化的查看方式是說,如果將所有內容都放在一個文件中,則順序由文件的內容確定。 而如果您將其分解,那么Spring可以探索其他選擇,並且事情可能會以另一種更合適的順序出現。 請注意,您可以對@Configuration使用內部類和受包保護的類(只要它們是靜態的),因此您無需創建新文件。

@Configuration類也可以是自相矛盾的(例如,您要@Autowired在同一單元中創建的某些內容-有時可以工作,有時不可以)。 同樣,在大多數情況下,Spring所創建的組件(不是由您自己的代碼明確創建的)通常需要盡早實例化。 Spring Boot必須在完全初始化ServletContext之前創建ServletsFilters ,從而加劇了這種情況。

就堆棧跟蹤而言,@ @Autowired依賴項原來為空,這是一種氣味。 同樣在日志中,您可能會看到INFO級別的日志,指出某些bean“不適合進行后期處理”。 不能保證這是致命的(因此是INFO級別),但是如果您看到很多,則可能會遇到麻煩。

對於這種推理,我不知道任何規范的參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM