spring bean加載順序指定方式之一(除了指定Order注解外)


在某些情況下,我們在容器啟動的時候做一些事情,舉個例子,加載緩存等。。

此時我們會希望某個bean先被加載並執行其中的afterpropertiesset方法。

因為spring默認是根據是否有@Ordered注解(ordered和maven三方庫依賴管理一樣,也應該作為公共資源分配,這是正統方法)控制的,如果沒有注解的情況下,通過context:component-scan base-package配置中類的全名進行升序加載的,因此,如果希望某個bean先加載,可以將其包名更改使得排名最前即可,主要是在很多三方庫bean的加載和業務有沖突的時候,但是三方庫順序我們無法控制的時候臨時折中方案。

spring中有提到實現了BeanPostProcessor接口的bean會被優先加載,但我們實際用下來發現這並不可行,還出現了另一個spring mvc初始化的錯誤java.lang.IllegalArgumentException: The ConversionService may not be null

通過將該bean的fqn排到加載的最前面后,即實現了最先加在的目的,也沒有出現該錯誤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM