かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot で書籍の貸出状況確認・貸出申請する Web アプリケーションを作る ( 番外編 )( 指定したパッケージ配下のクラスをダイアグラムで表示する )

はじめに

IntelliJ IDEA Ultimate Edition で指定したパッケージ ( 外部ライブラリでも可 ) 配下のクラスをダイアグラムで表示する方法を調べたので、その手順を記載します。特定クラスを継承しているクラスを調査したい時にも使えます。

Spring Security のパッケージ org.springframework.security 配下に ApplicationEvent を継承したクラスとして何があるのかを調べたいと思ったのが調査した発端です。

指定したパッケージ配下のクラスをダイアグラムで表示する

  1. org.springframework.security が package か import に書かれているソースファイルを開きます。今回は src/main/java/ksbysample/webapp/lending/security の下の AuthenticationFailureBadCredentialsEventListener.java を開きます。

  2. ソースファイルの上部の import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent;security にカーソルを移動した後、コンテキストメニューを表示して「Diagrams」->「Show Diagram...」を選択します。

    f:id:ksby:20150718235810p:plain

  3. 指定したパッケージ内のパッケージのダイアログが表示されます。

    f:id:ksby:20150719000419p:plain

  4. Ctrl+A を押して表示されている全てのパッケージを選択した後、コンテキストメニューを表示して「Expand Nodes」を選択します。

    f:id:ksby:20150719000906p:plain

  5. パッケージが展開されて、そのパッケージ直下にあるクラスがダイアグラム内に表示されます。

    f:id:ksby:20150719001253p:plain

    まだダイアグラム内にパッケージが残っていますので、Ctrl+A で全選択 → 「Expand Nodes」をパッケージがなくなるまで繰り返します。

  6. パッケージがなくなっただけの段階では、まだ ApplicationEvent がダイアログに表示されていません。ApplicationEvent をダイアグラムに表示します。

  7. Ctrl+F を押して検索ウィンドウを開いた後、"Event" と入力してクラス名に "Event" の文字列が含まれるクラスを表示します。表示されたクラスから AuthenticationSuccessEvent を選択します。

    f:id:ksby:20150719002054p:plain

  8. ダイアグラムの AuthenticationSuccessEvent が表示されている位置にジャンプします。AuthenticationSuccessEvent 継承元のクラス AbstractAuthenticationEvent を選択した後、コンテキストメニューを表示して「Show Parents」を選択します。

    f:id:ksby:20150719002625p:plain

  9. 「Super classes for AbstractAuthenticationEvent」というウィンドウが表示されます。ウィンドウ内のリストから ApplicationEvent を選択します。

    f:id:ksby:20150719003008p:plain

  10. ダイアログに ApplicationEvent が表示されますが、見ている画面上に見当たりません。Ctrl+F を押して検索ウィンドウを開いた後、"ApplicationEvent" と入力してからリストに表示される ApplicationEvent を選択します。

    f:id:ksby:20150719003555p:plain

  11. ダイアグラムの ApplicationEvent が表示されている位置にジャンプします。これで ApplicationEvent を継承しているクラスを確認することができます。

    f:id:ksby:20150719003840p:plain