繁体   English   中英

拆分resources.groovy(Grails 2.5)以使其模块化

[英]Splitting resources.groovy (Grails 2.5) to make it modular

我的Grails项目的resources.groovy正在增长,因此我正在考虑将其拆分为一些逻辑文件,以便于维护。 阅读了博客的一些问题之后,我了解了importBeans或loadBeans。 仅当使用grails run-app运行应用程序时,此方法才有效。 但是,我创建了一个战争并将其部署在JBoss上,无法访问自定义bean文件。 在下面也没有运气尝试过-这里提到- 从grails应用程序中的自定义groovy文件中加载spring bean

grails.war.resources = { stagingDir, args ->
  copy(todir: "${stagingDir}/WEB-INF/classes/spring") {
     fileset(dir:"grails-app/conf/spring") {
        include(name: "datasourceDefinitions.groovy")
        exclude(name: "resources.groovy")        
      }
  }
}

我在grails-app / conf / spring中添加了datasourceDefinitions.groovy。 请帮忙。

问题是由于Spring bean配置文件被移到WAR文件内的文件夹“ WEB-INF / classes / spring /”(确保文件打包在.war中)中。 我所做的就是在resources.groovy中找到资源路径。

def loadFromFile = { name ->
    importBeans("file:grails-app/conf/spring/"+name)
}

def loadFromWar = { name ->
    def resource = application.parentContext.getResource("WEB-INF/classes/spring/"+name)
    loadBeans(resource)
}
def loadResource = application.isWarDeployed() ? loadFromWar : loadFromFile

loadResource "datasourceDefinitions.groovy"
loadResource "anotherBean.groovy"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM