リモートシェルとのREPL
このTipは@cbornetによって提出されました
Spring BootリモートシェルはSpring Boot 2.0で削除されるので、このヒントは非推奨です
v3.8以降、JHipsterには、Spring Bootリモートシェルを含むshell
Maven/Gradleプロファイルがあります。
プロジェクトがJHipster < 3.8で生成された場合は、spring-boot-starter-remote-shell
依存関係を手動で追加する必要があります。
これにより、ライブアプリケーションのデバッグに役立つ便利なコマンドがいくつか提供され、独自のコマンドの作成もできます。
Spring Bootのドキュメントに記載されていないもう1つの優れた機能は、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]