grails - Grails创建内部服务类的实例

标签 grails grails-controller grails-services

在Grails中,服务默认为单例。我可以保持这种方式,仍然从 Controller 创建该服务的内部类的实例吗?

//by default grails makes MyTestService a singlton
class MyTestService{

     public class InnerTest{
          String msg;
          def addMsg(String str){
               this.msg=str;
          }
          def printMsg(){
             println this.msg;
         }
     }

}

在 Controller “MyController”中...
def m=myTestService.getInstance().new InnerTest();
//produces " MyTestService.InnerTest cannot be cast to MyTestService.InnerTest"

 def m=myTestService.new InnerTest();
//No signature of method:MyController.InnerTest() 

最佳答案

您应该能够执行以下操作:

class MyTestService{

     public class InnerTest{
          String msg;
          def addMsg(String str){
               this.msg=str;
          }
          def printMsg(){
             println this.msg;
         }
     }

     def InnerTestFactory() {
        new InnerTest()
     }

}

并从您的 Controller 中使用它:
def m=myTestService.InnerTestFactory();

关于grails - Grails创建内部服务类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687844/

相关文章:

grails - 如何使Grails域类显示名称字段?

grails - 如何使用H2内存数据库保存数据?

grails - Grails集成测试 Controller 不能重复使用?

grails - 如何在grails Controller 中重置参数?

grails - Grails范围为Singleton,许多用户登录并执行操作

grails - 删除Grails服务中的记录

grails - Grails 3域类名为 “Application”的问题

grails - Array.size()返回错误的值(Grails)

grails - 如何获取所有复选框值,包括Grails中未选中的复选框?

grails - Grails-如何在集合集合中获取部分值?