我可以在 Spring Web 应用程序的上下文中打开 REPL 吗?

Raf*_*ida 6 java eclipse spring tomcat read-eval-print-loop

我正在 Tomcat 8 上开发基于 Spring MVC 和 Hibernate 的 Web 应用程序(用于部署和本地开发)。IDE 是 Spring Tool Suite(基于 Eclipse)。

我想在我的应用程序的上下文中(当它在本地 Tomcat 上运行时)打开一个 REPL(read-eval-print-loop,如 Groovy 的、Python 的、Ruby 的等),以通过缩短代码来加速开发 -> 测试反馈回路。

也就是说,我希望能够在命令行(或在 Eclipse 中)打开一个 shell 并执行以下操作:

ClientDAO clientDAO = getAutowiredDAOFromSpringSomehow();
Client client = clientDAO.findByID(100);
client.setName("Another name");
clientDAO.save(client);
Run Code Online (Sandbox Code Playgroud)

我可以通过在控制器中的某处设置断点并使用 Eclipse 的调试器显示选项卡来执行任意代码来解决这个问题,但这有点不切实际且不舒服。

如果更方便,我愿意使用 Groovy 或 Scala 的 shell(不过,我显然仍然需要访问我的对象)。

我有哪些选择?

Hal*_*vic 1

我不知道它对您的用例是否有用,但理论上应该可以使用CRaSH来做到这一点。它是类似于 Linux 上的 Bash 的 Shell,但适用于您的 Java 应用程序,并且可以创建您自己的命令。