REPL with the remote shell
Tip submitted by @cbornet
Since v3.8, JHipster has a shell
Maven/Gradle profile that will include the Spring Boot remote shell.
If your project was generated with JHipster < 3.8, you’ll need to add the spring-boot-starter-remote-shell
dependency manually.
This brings some useful commands that can help debugging a live application and you can also write your own.
Another nice feature which is not documented in Spring Boot docs is that you can execute Groovy script code on a live app in a REPL way. For this:
-
Start your app
-
Open an ssh session in a terminal (here for user admin, password: admin):
ssh -p2000 admin@localhost
- Once connected, switch to Groovy REPL mode:
> repl groovy
- Get the BeanFactory:
> bf = context.attributes['spring.beanfactory']
- Now you can use the BeanFactory to get Spring beans and call their methods:
> bf.getBean('userRepository').findAll().login
[system, anonymoususer, admin, user]
> bf.getBean('userService').getUserWithAuthoritiesByLogin('user').get().authorities.name
[ROLE_USER]