2012-04-03 58 views
3

這樣做的最佳做法是什麼?基本上我使用的是rabbitMQ,它具有多少個併發進程的設置,我將其作爲WAR部署到測試服務器,並希望通過簡單地更改該值並避免每次創建新的WAR文件來優化此併發數。Grails從文件中讀取Config.groovy文件

我在想讀一個屬性文件,我可以更改值並重新啓動服務器?

例如:在我的Config.groovy文件

rabbitmq { 
    connectionfactory { 
     username = 'groovy' 
     password = 'groovy' 
     hostname = 'localhost' 

    } 
    queues = { 
     processTerritory exclusive: true 
    } 
    concurrentConsumers = **READ INTEGER VALUE FROM A FILE** 
} 

回答

2

您可以從Config.groovy中導入外部配置文件。有Config.groovy中已經被註釋掉的代碼,演示瞭如何做到這一點:

grails.config.locations = [ "classpath:${appName}-config.properties", 
         "classpath:${appName}-config.groovy"] 

比方說你的應用程序的名字是foo,你現在可以把FOO-的Config.groovy或foo-config.properties某處類路徑。對於Tomcat,您可以將該文件放在lib文件夾中。

它也涵蓋了user documentation

然後,FOO-Config.groovy中,你可以把:

rabbitmq.concurrentConsumers = 10 

或任何值適用於該服務器。

Grails的3

Grails的3不包括在默認情況下此功能,但可以使用external-config plugin