远程 REPL

提交者 @cbornet

由于在Spring Boot 2.0中将删除Spring Boot远程Shell,因此不建议使用此技巧

从v3.8开始,JHipster拥有一个shell Maven/Gradle配置文件,其中将包含Spring Boot远程shell 。 如果您的项目是使用JHipster <3.8生成的,则需要手动添加spring-boot-starter-remote-shell依赖项。

这带来了一些有用的命令,这些命令可以帮助调试实时应用程序,您也可以编写自己的命令。

Spring Boot文档中未记录的另一个不错的功能是,您可以以REPL的方式实时在应用程序上执行Groovy脚本代码。 为此:

  • 启动你的应用

  • 在终端中打开ssh会话(此处用于用户admin,密码:admin):

ssh -p2000 admin@localhost
  • 连接后,切换到Groovy REPL模式:
> repl groovy
  • 获取BeanFactory:
> bf = context.attributes['spring.beanfactory']
  • 现在,您可以使用BeanFactory来获取Spring bean并调用其方法:
> bf.getBean('userRepository').findAll().login
[system, anonymoususer, admin, user]
> bf.getBean('userService').getUserWithAuthoritiesByLogin('user').get().authorities.name
[ROLE_USER]