Skip to main content

リモートシェルとのREPL

このTipは@cbornetによって提出されました

Spring BootリモートシェルはSpring Boot 2.0で削除されるので、このヒントは非推奨です

v3.8以降、JHipsterには、Spring Bootリモートシェルを含むshellMaven/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]