在我的grails应用程序中,我想从预定的作业类中调用控制器中包含的方法。
阅读[http://www.grails.org/Job+Scheduling+(Quartz)],我可以看到数据源和服务在作业类中按名称自动连接。对于控制器来说,默认情况下这似乎是不可能的,可能是因为控制器不应该做这种事情。
顺便说一下,有没有办法从grails中的作业中调用控制器方法? 对你来说这可能是一个不好的做法(以及为什么)?提前致谢, 卢卡
答案 0 :(得分:8)
这是不好的做法,因为Controller旨在处理Web请求 - 包括用户会话和所有内容。
Quartz作业中没有用户会话。
其次,保持Controller中的功能本身就是坏事 - 控制器应该更好地“控制”对其他业务逻辑方法的调用。
我建议您将所有功能移至src
中的服务,域类或POGO类。
当然,您可以调用new MyController().method()
,但默认情况下不会将任何bean注入控制器。