【问题标题】:How do i list all the controllers/services of a grails plugin我如何列出 grails 插件的所有控制器/服务
【发布时间】:2012-08-01 03:38:57
【问题描述】:

如何列出 grails 插件的所有控制器/服务。 要么 我如何知道给定 GrailsApplication 类的 pluin 名称。

【问题讨论】:

    标签: grails grails-plugin grails-2.0


    【解决方案1】:

    插件中的工件使用GrailsPlugin 注释进行注释,以添加有关其源的元数据。因此,您可以使用它来查找控制器/服务/等是否存在。来自应用程序或这样的插件:

    import org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin
    
    for (type in ['controller', 'service']) {
    
       for (artifactClass in ctx.grailsApplication."${type}Classes") {
    
          def clazz = artifactClass.clazz
    
          def annotation = clazz.getAnnotation(GrailsPlugin)
          if (annotation) {
             println "$type $clazz.name from plugin '${annotation.name()}'"
          }
          else {
             println "$type $clazz.name from application"
          }
       }
    }
    

    【讨论】:

    • 非常感谢。这正是我们所需要的。
    【解决方案2】:

    在新创建的 Grails 应用程序中,grails-app/views/index.gsp 具有以下内容:

    <g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
        <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
    </g:each>
    

    您可以通过类似的方式获得服务。

    【讨论】:

    • 基本上我的应用程序分为几个插件。我想添加另一个插件,它将列出每个插件中的插件和控制器/服务。
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 2011-09-09
    • 1970-01-01
    • 2022-01-10
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多