spring - 如何检查服务是否实现了grails中的接口(interface)

标签 spring grails grails-2.3

我有一个接口(interface)“TestInterface”和实现“TestInterface”的grails服务“TestService”。但是当我测试我是否有一个实现这样的接口(interface)的服务时:

application.serviceClasses?.each { serviceClazz ->

            if(serviceClazz instanceof TestInterface) {
                println "service name => "+ serviceClazz.name;
            }
}

结果是我没有得到任何错误,也没有得到我的期望(服务名称=> TestService)

我还尝试在 if 条件下将 serviceClazz 更改为 serviceClazz.class,serviceClazz.metaClass 但仍然不起作用。

谢谢,

最佳答案

关于:

if (TestInterface.class.isAssignableFrom(serviceClazz)) {
    ... 
}

更新

所以我设法使用 Grails 2.3.11 运行实际示例。

class BootStrap {

    def grailsApplication

    def init = { servletContext ->
        grailsApplication.serviceClasses.each { serviceClazz ->
            if (TestInterface.isAssignableFrom(serviceClazz.clazz)) {
                println serviceClazz
            }
        }
    }
    def destroy = {
    }
}

如您所见,重要的部分是serviceClazz.clazz中的clazz

希望这有帮助!

关于spring - 如何检查服务是否实现了grails中的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945367/

相关文章:

java - 如何使用带有 @Value 注释的字符串来连接其他字符串?

java - Apache Camel 中 Java DSL 相对于 Spring DSL 有哪些优势?

spring - 获取自己服务的所有正在运行的 pod 的列表

mysql - Grails:如何在加密列中搜索关键字并获取行

Grails 2.3 IntegrationSpec 不能是事务性错误

spring - CRON:在特定时间运行作业

grails 生成 View - 未找到脚本 'GenerateViews'

使用 OpenJDK 1.6 构建 war 时,Grails 1.3.9 和 grails-melody : javamelody. jar 未打包

spring - Grails Spring 安全休息插件