GrailsApplication src / classes

时间:2010-08-15 17:44:36

标签: grails

根据Grails API,我们可以通过GrailsApplication检索所有域类定义

import org.codehaus.groovy.grails.commons.ApplicationHolder as AH   
 AH.application.domainClasses

我在src / groovy下定义了类,并且想要做同样的事情。我尝试使用以下代码,但徒劳无功

    import org.codehaus.groovy.grails.commons.ApplicationHolder as AH   
 AH.application.allClasses

根据Grails API,对getAllClasses的调用应返回Grails类加载器加载的所有类

  

Class [] getAllClasses()             检索由Grails类加载器

加载的所有java.lang.Class实例

我错过了什么

2 个答案:

答案 0 :(得分:3)

任何Java或Groovy代码都可以放在src目录中,而不必与Grails集成。 Grails类加载器仅加载Grails特定的类,例如grails应用程序在运行时知道的插件,控制器和域类。为了找到位于src目录中的类,您需要知道您感兴趣的包名称,然后遍历该包中包含的所有内容。

答案 1 :(得分:3)

。 好吧,' src'没有在grails classLoader中注册。但是你可以使用"在上下文类加载器"使用一行代码(Java Style)来轻松获取这些类

Class fetchedClass = Class.forName(
    "Class Full Name Here", 
    true, 
    Thread.currentThread().getContextClassLoader()
)


多数民众赞成...... :)全部完成!!容易。 。

获取课程的示例" com.myPackage.dto.AddressDTO" 我们会这样做:

示例:获取课程" com.myPackage.dto.AddressDTO"

Class fetchedClass = Class.forName(
        "com.myPackage.dto.AddressDTO", 
        true, 
        Thread.currentThread().getContextClassLoader()
    )