我有一个接口(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/