首页 文章

Grails ApplicationHolder替换

提问于
浏览
1

我想问一下,我应该用什么来替换ApplicationHolder来获得grailapplication . 我有以下grails脚本在grails服务中运行方法 .

import org.codehaus.groovy.grails.commons.ApplicationHolder
import de.rvgmbh.nemesis.migration.service.MasterDataMigrationService
def ctx = ApplicationHolder.getApplication().getMainContext()
def dataSource = ctx.getBean("dataSourceSybase")
def masterDataMigrationService = new MasterDataMigrationService(dataSourceSybase: dataSource)
if (masterDataMigrationService != null) {
    masterDataMigrationService.partnerMigration() 
}
else {
  println "ist leider etwas falsches passiert"
}

dataSourceSybase是resources.groovy中的一个spring bean . 我应该怎么做才能取代ApplicationHolder,因为它已被弃用 . 提前致谢

2 回答

  • 2
    includeTargets << grailsScript("Bootstrap")
    
    target(main: "master data migration service") {
    // TODO: Implement script here
    depends(bootstrap)
    bootstrap()
    def dataSource = appCtx.getBean("dataSourceSybase")
    def masterDataMigrationService = new MasterDataMigrationService(dataSourceSybase: dataSource)
    
    if (masterDataMigrationService != null) {
      masterDataMigrationService.partnerMigration()
    }
    else {
     println "ist leider etwas falsches passiert"
    }
    
    } 
    
    
    setDefaultTarget(main)
    

    以下是我尝试转换为gant脚本的内容 . 它无法运行

    includeTargets << grailsScript("Bootstrap")
    
    target(main: "master data migration service") {
    // TODO: Implement script here
    bootstrap()
    def dataSource = appCtx.getBean("dataSourceSybase")
    def masterDataMigrationService = new MasterDataMigrationService(dataSourceSybase: dataSource)
    
    if (masterDataMigrationService != null) {
      masterDataMigrationService.partnerMigration()
    }
    else {
        println "ist leider etwas falsches passiert"
    }
    
    }
    setDefaultTarget(main)
    
  • 0

    如果这是使用run-script命令运行的脚本,则已为您注入了上下文 . 只需使用变量ctx . 无需定义它 .

相关问题