2013-10-17 74 views
0

我們的應用程序使用@Bean來定義創建bean並將它們加載到Spring上下文中。 我們現在需要對這些進行外部化,以便在不觸及java源代碼的情況下配置應用程序。註釋Groovy bean在Spring中加載

我們希望用Groovy類替換@Bean

有沒有一種方法可以註釋一個Groovy bean,以便它在Spring中被選中?

請注意,我們不能簡單地引用Spring XML中的每個Groovy bean,因爲我們需要在不觸及Spring代碼的情況下添加和修改bean。

非常感謝。

+0

這聽起來不祥。你想用這個目標達到什麼目標?爲什麼改變「Spring代碼」這麼糟糕?這甚至意味着什麼「Spring代碼」? XML配置? '@ Bean'註釋? –

+0

我們處理流程流程。每個進程的配置被定義爲一個基本ProcessDefinition類的獨立實例。 @Bean用於定義擴展ProcessDefinition的不同流程實例。我們的目標是避免每次添加或編輯流程配置時更改源代碼(即Java Bean配置)。這個想法是將ProcessDefinition bean的實例定義爲Groovy類,這些類將在Spring中被選中。 – user1052610

回答

0

使用Spring配置繼承。

將所有共享代碼移動到每個個人/特定項目所依賴的通用「基礎」項目中。爲此使用Maven。

創建一個通用/基本的Spring配置並將其放入「基礎」項目中。該配置不包含ProcessDefinition的定義

在特定項目中,創建一個從ProcessDefinition繼承的bean。創建一個Spring配置,它導入基本配置並在其中定義單個特定的bean。

+0

謝謝,會做到這一點。然而,這個原型可能替代的現有系統使用XML進行配置,但是由於各種原因,它不像使用Java中定義的真實對象模型那麼強大。我想到Groovy的原因是因爲團隊中的其他人不認爲我們應該在配置更改時更改Java的「源代碼」。我的觀點是,這不是真正的源代碼。也許你有更好的方式來表達這個或我可以做出的其他觀點。再次感謝您的幫助。 – user1052610