加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何访问Grails 2.0中的Grails配置?

发布时间:2020-12-14 16:40:43 所属栏目:大数据 来源:网络整理
导读:我获得了最新的Grails 2.0里程碑,我看到一个对ConfigurationHolder类的弃用警告: org.codehaus.groovy.grails.commons.ConfigurationHolder 弃用消息简单地说“使用依赖注入代替”,这对我不是很有帮助。我理解依赖注入,但是如何连接一个正确的Grails配置
我获得了最新的Grails 2.0里程碑,我看到一个对ConfigurationHolder类的弃用警告:

org.codehaus.groovy.grails.commons.ConfigurationHolder

弃用消息简单地说“使用依赖注入代替”,这对我不是很有帮助。我理解依赖注入,但是如何连接一个正确的Grails配置,所以我可以在运行时访问它?我需要从除我的控制器和标签之外的地方(如BootStrap)访问配置。

解决方法

>如果你需要一个支持依赖注入的工件,只需注入grailsApplication

class MyController {
    def grailsApplication

    def myAction = {
        def bar = grailsApplication.config.my.property
    }
}

>如果你需要它在一个bean,比如src / groovy或者src / java,请使用conf / spring / resources.groovy

// src/groovy/com/example/MyBean.groovy
class MyBean {
    def grailsApplication

    def foo() {
        def bar = grailsApplication.config.my.property
    }
}

// resources.groovy
beans = {
    myBean(com.example.MyBean) {
        grailsApplication = ref('grailsApplication')
        // or use 'autowire'
    }
}

>在其他地方,最简单的方法是将配置对象传递给需要它的类,或者传递所需的特定属性。

// src/groovy/com/example/NotABean.groovy
class NotABean {
    def foo(def bar) {
       ...
    }
}

// called from a DI-supporting artifact
class MyController {
    def grailsApplication
    def myAction = {
        def f = new NotABean()
        f.foo(grailsApplication.config.my.property)
    }
}

更新:

Burt Beckwith最近写了几个博客文章。 One discusses using getDomainClass()从域类中,而另一个提供选项creating your own holder class(如果上述解决方案都不合适)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读