2013-07-26 51 views
1

我向我的客戶提供了一個高度可定製的應用程序,它完全由自己完成。但是如果我的客戶想要覆蓋任何控制器,我想用他們的實現替換我的實現。然而,只是覆蓋控制器會導致映射的模糊定義。彈簧覆蓋控制器

我一直在使用組件掃描來加載bean。

的潛在解決方案來到我的腦海裏有:

  1. 使用組件掃描儀與自定義過濾器排除? (這似乎不是那麼容易)
  2. 使用xxxxPostProcessor刪除一些bean? (如何?)

任何幫助嗎?

+0

這確實取決於他們想要做什麼,但我會爲他們提供在服務級別添加/交換邏輯而不是更改控制器的功能。 – soulcheck

回答

0

我按照下列步驟操作:

  1. 創建一個自定義的註釋:@Devoted
  2. 創建一個自定義ImportBeanDefinitionRegistrar。迭代已經註冊的bean定義來找出`@Devoted @ Controller's並刪除它們。

根據要求我會提供實施細節。

0

如果我得到你的問題正確,

您可以通過更改URL到特定的實現名稱有所不同,實施

說電信接口和AirtelImpl和RelianceImpl是控制器,然後

您的請求映射

@RequestMapping(value= "/airtel/doBilling") 
@RequestMapping(value= "/reliance/doBilling") 

這樣,執行流程會有所不同。