我想讓我的Bootstrap依賴於grails DataSource.groovy文件中的createdb屬性。當設置爲'創建'時,如果設置爲'更新',則應該生成新的主數據。如何在bootstrap中獲取grails數據源createdb屬性
我發現GrailsDataSource in the Grails API它也有一個方法getCreateDb,但我不知道如何從相應的Bootstrap環境的Bootstrap訪問它。
我想讓我的Bootstrap依賴於grails DataSource.groovy文件中的createdb屬性。當設置爲'創建'時,如果設置爲'更新',則應該生成新的主數據。如何在bootstrap中獲取grails數據源createdb屬性
我發現GrailsDataSource in the Grails API它也有一個方法getCreateDb,但我不知道如何從相應的Bootstrap環境的Bootstrap訪問它。
最簡單的方法可能是剛剛從配置檢查dbCreate的值,例如:
import org.codehaus.groovy.grails.commons.ApplicationHolder
if (ApplicationHolder.application.config.dataSource.dbCreate == "create") {
...do create stuff...
} else if (ApplicationHolder.application.config.dataSource.dbCreate == "update") {
...do update stuff...
}
向上最新的方式獲取的dbCreate屬性注入「grailsApplication」到BootStrap.groovy中:
def grailsApplication
if(grailsApplication.config.dataSource.dbCreate == 'create'){
...
}
ApplicationHolder現在已被棄用,我無法讓它工作。
希望它可以幫助別人。
從ataylor的答覆已棄用。請參閱How to access Grails configuration in Grails 2.0?。
另外,它應該注意到在canotto90答案注射def grailsApplication
應該出現在BootStrap的init關閉之外。換句話說,你得到NPE。
正是我一直在尋找的,謝謝! – 2010-06-29 05:49:03