2014-03-30 24 views
0

我們正在開發一個帶有spring框架的項目。 我們正在使用一個tomcat集羣,爲了做一些真正的高級集成測試,我們在web應用程序中添加了一些控制器,這些控制器允許一些不可能達到產品的風險內容。Spring profiles - svn中的風險代碼

我們瞭解到的是,爲了做到這一點,我們可以使用Spring配置文件和註釋的風險控制器作爲與

@profile("Staging") 

此註釋可以確保只有當主配置文件是「豆將被創建分期」。

打電話給我偏執,但這個有風險的代碼現在駐留在我們的svn並且是項目代碼的一部分。 似乎這個錯誤可能導致這段代碼成爲生產的一部分,並允許剝削者採取冒險行動。

此外,如果一些程序員忘記註釋代碼將肯定會達到生產。 我們都犯錯誤。

這個問題是否有緩解?

回答

0

我會打電話給你有點偏執。 (wink)希望你在應用程序中也有集成測試,他們通常會設置一些環境 - 如果他們曾經在生產環境中運行過,他們可能會搞砸你的數據庫,發送消息到其他系統等等。 你不用擔心。爲什麼?也許你可以用這個答案來回答你應該如何打包這些有風險的代碼。

我的建議:將所有有風險的代碼保存在一個模塊中(如果您使用的是多模塊構建)。不要在生產版本中包含此模塊(您可以使用maven配置文件)

或..讓代碼檢查它是否允許運行。也許它可以檢查文件系統上是否存在某個僅在測試環境中創建的文件。

這實際上取決於你所擔心的。

但是好好考慮一下。我知道負載測試導致許多訂單被放置在實際(外部)訂單處理系統中的故事。

0

您所講的錯誤是將staging添加到活動配置文件的列表中。是的,這很容易做到。但是很容易從文件系統格式化硬盤中刪除文件並關閉電源。所以,你的問題真的聽起來像是一種偏執狂...... :)

我認爲問題不在於Spring配置文件,而在於你的開發方法。如果你不確定在某些代碼中它應該不在生產中。如何實現這一目標?從svn移到git。並開始使用分支機構。每個任務都是一個分支。沒有例外。每項任務都必須經過測試。因此,您可以部署每個想要升級的分支,對其進行測試,以及何時確定代碼正常合併/重新分配以便掌握。主人也應該進行測試,然後才能部署到生產中。

在這種情況下,您不需要配置文件「分段」。