2010-05-20 65 views
4

如果我在Spring 2.5中使用組件掃描,但也可以在xml中定義一個控制器。我可以重寫使用組件掃描安裝的spring bean嗎?

我在應用程序上下文中獲得了這個bean的兩個實例嗎?如果是的話哪個實例將被調用其相關的RequestMappings?

<bean id="myController" class="domain.MyController"> 
     <property name="filters"> 
      <list> 
       <ref local="filter1"/> 
       <ref local="filter2"/> 
      </list> 
     </property>   
    </bean> 

回答

0

好問題,我不確定。我的猜測是,無論哪一個首先被宣佈,勝利。因此,如果您的<context:component-scan>首先出現,則自動檢測到的組件將獲得請求。如果你的<bean>先來,那就贏了。

如果有疑問,測試一下,應該不難發現。

一個更好的解決辦法是從掃描儀明確排除的組分,使用的<context:component-scan>嵌套過濾元件。

+0

我測試過它,什麼時候被發現的倍數它總是會拋出一個異常.. – 2013-02-11 15:24:31

0

我已經這麼做了意外之前,它通常會導致在多個應用程序環境。儘管所有的東西看起來都很好,但是像數據庫變化這樣的小東西永遠都不會被提交,通常我不得不追蹤它。

+0

不,它不會產生多重執行緒,它只會創建多個豆。 – skaffman 2010-05-20 14:14:30

1

如果你問春給定接口的豆,你有該接口的兩個bean,然後你從Spring容器例外。

從這個規則的一個例外是,如果您的組件標有@Primary或XML bean的主要屬性設置爲true。

相關問題