かんがるーさんの日記

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

Spring Boot でメール送信する Web アプリケーションを作る ( 番外編 )( IntelliJ IDEA Ultimate Edition のインストール )

概要

Community Edition をインストールしている PC に Ultimate Edition をインストールして開発環境を移行します。

2回に分けて行う予定です。今回は Ultimate Edition のインストールと機能の確認、次回は Doma 2 の IntelliJ Doma support plugin や JRebel をインストールしてみます。

インストールした後にいろいろいじってみましたが、Ulitimate Edition やっぱり便利です。

手順

Ultimate Edition のインストーラのダウンロード

  1. Download IntelliJ IDEA 14.1 のページで Ultimate Edition の「Download Ultimate」ボタンをクリックして ideaIU-14.1.3.exe をダウンロードします。

Ultimate Edition のインストール

  1. ideaIU-14.1.3.exe を起動します。

  2. IntelliJ IDEA Setup」ダイアログが表示されます。「Next >」ボタンをクリックします。

  3. 「License Agreement」画面が表示されます。「I Agree」ボタンをクリックします。

  4. 「Choose Install Location」画面が表示されます。「Destination Folder」に C:\IntelliJ_IDEA\14.1.3 を入力した後、「Next >」ボタンをクリックします。

  5. 「Installation Options」画面が表示されます。何もチェックせずに「Next >」ボタンをクリックします。

  6. 「Choose Start Menu Folder」画面が表示されます。「Install」ボタンをクリックします。

  7. 「Installing」画面が表示され、インストールが実行されます。

  8. インストールが完了すると「Completing the IntelliJ IDEA Setup Wizard」画面が表示されます。画面中央の「Run IntelliJ IDEA」チェックボックスをチェクした後、「Finish」ボタンをクリックします。

    • 「Run IntelliJ IDEA」で起動される IntelliJ IDEA は必ず 32bit版になるようです。64bit版を起動したい場合にはチェックせず手動で idea64.exe を起動しましょう。

Ultimate Edition の起動

  1. IntelliJ IDEA Ultimate Edition が起動すると最初に「Complete Installation」ダイアログが表示されます。「I want to import my settings from a custom location」を選択して、その下の「Specify config folder or installation home ...」に Community Edition をインストールしていた C:\IntelliJ_IDEA\14.1.2 を入力した後、「OK」ボタンをクリックします。

  2. IntelliJ IDEA License Activation」ダイアログが表示されます。ライセンス購入時に入手したユーザ名と License key を入力して「OK」ボタンをクリックします。

  3. 「License Agreement for IntelliJ IDEA 14.1.3」ダイアログが表示されます。「Accept all terms of the license」チェックボックスをチェックした後「OK」ボタンをクリックします。

  4. IntelliJ IDEA のメイン画面が表示されます。

    • CPU 使用率が異常に上昇し Indexing のメッセージが画面下部に表示されていました。何か更新処理をしているようです。
    • タスクマネージャを起動して状況を確認すると idea.exe の CPU使用率が 100% 近くになっていたのと、32bit 版の exe が起動されていることが確認されました。
  5. 32bit版が起動していたので 64bit版を起動し直します。起動中の IntelliJ IDEA を終了します。

  6. C:\IntelliJ_IDEA\14.1.3\bin の下の idea64.exe を実行します。

  7. IntelliJ IDEA のメイン画面が表示されます。画面右上に「Spring Configuration Check」「Unindexed remote maven repositories found.」のメッセージが表示されます。

  8. 「Unindexed remote maven repositories found.」のメッセージの下に表示されている「Open Repositories List」リンクをクリックします。

  9. 「Settings」ダイアログが表示され、「Build, Execution, Deployment」-「Build Tools」-「Maven」-「Repositories」が選択されます。画面右側の「Indexed Maven Repositories」のリストに表示されている以下の2つのレポジトリの Update が "Never" と表示されているので、選択して「Update」ボタンを押して更新します。

    ※時間が結構かかります。

  10. メイン画面に戻ります。念の為、Gradle projects View の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

  11. メインメニューから「File」-「Close Project」を選択してプロジェクトを一旦クローズします。

  12. 「Welcome to IntelliJ IDEA」画面が表示されます。画面左側のリストから ksbysample-webapp-email を選択してプロジェクトを開き直します。

  13. 再び IntelliJ IDEA のメイン画面が表示されます。画面右上に「Spring Configuration Check」のメッセージが表示されます。

    f:id:ksby:20150530193126p:plain

  14. メインメニューから「File」-「Project Structure...」を選択します。

  15. 「Project Structure」ダイアログが表示されます。画面左側のリストから「Project Settings」-「Facets」を選択 → 画面中央のリストから「Spring」-「Spring (ksbysample-webapp-email)」を選択 → 画面右側のリストから「Spring Application Context」を選択した後、「Edit」ボタンをクリックします。

    f:id:ksby:20150530194139p:plain

  16. 「Edit Application Context 'Spring Application Context'」ダイアログが表示されます。画面中央のファイルを全てチェックした後「OK」ボタンをクリックします。

    f:id:ksby:20150530195802p:plain

    ※これが何の設定かよく分からないのですが、メッセージが表示されているので出ないようにします。

  17. 「Project Structure」ダイアログに戻りますので「OK」ボタンをクリックしてクローズします。

  18. 再度プロジェクトをクローズ → オープンし直して「Spring Configuration Check」のメッセージが表示されないことを確認します。

  19. Gradle projects View から clean タスクを実行後、メインメニューから「Build」-「Rebuild Project」を選択しエラーが出ないことを確認します。

  20. テストが正常に動作するか確認します。Project View のルートでコンテキストメニューを表示し「Run 'Tests in 'ksbysample...' with Coverage」を選択します。

    f:id:ksby:20150530200851p:plain

  21. テストが正常に終了し "All Tests Passed" の文字が表示されました。

    f:id:ksby:20150530201043p:plain

  22. Gradle projects View から build タスクを実行し、"BUILD SUCCESSFUL" のログが出力されることを確認します。

  23. Tomcat を起動して動作を確認します。Gradle projects View から bootRun タスクを実行します。Community Edition の時と違い、起動時に ch.qos.logback のログが出力されていました。

    f:id:ksby:20150530201730p:plain

  24. smtp4dev も起動して、画面の表示、メールの送信を試しましたが、正常に動作しました。

  25. Ctrl+F2 を押して Tomcat を停止します。smtp4dev も終了します。

  26. 上記以外に気になった点を記載しておきます。

    • applicationContext.xml の中の transactionManager が赤文字で表示されていました。transactionManager Bean は Web アプリケーション側で未定義の場合に Spring Boot が自動生成するのですが ( ただし build.gradle に spring-boot-starter-data-jpa を記述していることが条件です )、そのような Bean は認識されないようです。これはそのままにします。

      f:id:ksby:20150530212850p:plain

    • src/main/java/ksbysample/webapp/email/helper/mail の下の MAIL001MailHelper.java を開くと、getter メソッドが全て赤文字で表示されていました。

      f:id:ksby:20150530215455p:plain

      Lombok Plugin をインストールし直しました ( インストール方法は Spring Boot でメール送信する Web アプリケーションを作る ( その3 )( Project の作成 ) 参照 )。Community Edition でインストールしていた Plugin は引き継がれないようです。

    • src/main/resources/templates/mailsend の下の mailsend.html で th:replace="common/head-cssjs"head-cssjs の部分に赤波線が引かれていました。原因がよく分からないのですが、開発及び動作上支障はないようですのでこのままにします。

      f:id:ksby:20150530223005p:plain

Ultimate Edition の機能を使ってみよう

Ultimate Edition で使ってみたいと思っていた機能を試してみます。

Thymeleaf の補完機能

  1. src/main/resources/templates/mailsend の下の mailsend.html を開き、タグに th: と入力してみると Thymeleaf の補完候補が出てきました。

    f:id:ksby:20150530223413p:plain

Database Tools

  1. IntelliJ IDEA の画面右側に「Database」という項目が表示されています。これをクリックします。

    f:id:ksby:20150530223846p:plain

  2. Database View が開きます。左上の「New」ボタンをクリックして、「Data Source」-「PostgreSQL」を選択します。

    f:id:ksby:20150530224118p:plain

  3. 「Data Sources and Drivers」ダイアログが表示されます。Database、User、Password を入力します。

    f:id:ksby:20150530231922p:plain

  4. JDBC Driver は Web アプリケーションのものを使用するのではなく独自にダウンロードします。ダイアログの画面右下の「Driver files」の中の「download」リンクをクリックします。

    f:id:ksby:20150530233535p:plain

    「Driver files」の中の文字列が "Using PostgreSQL driver files" に変わりますので、その中の「PostgreSQL」リンクをクリックします。

    f:id:ksby:20150530233655p:plain

    画面左側の選択されている項目が「Drivers」-「PostgreSQL」に変わり、画面右側の「Driver files」に追加された JDBC Driver の jar ファイルが表示されます。

    f:id:ksby:20150530233909p:plain

  5. 画面左側で「Data Sources」-「PostgreSQL - ksbysample@localhost」を選択した後、画面右側の「Test Connection」ボタンをクリックして「Connection successful」が表示されることを確認します。確認後「OK」ボタンをクリックします。

    f:id:ksby:20150530234435p:plain

  6. 「Data Sources and Drivers」ダイアログに戻りますので「OK」ボタンをクリックしてクローズします。

  7. Database View に追加した設定が表示され、ksbyemail.public の下にテーブルが表示されます。またテーブル名をダブルクリックするとテーブルのデータが表示されます。

    f:id:ksby:20150531001230p:plain

  8. 簡単に使ってみた感じでは以下のことができました。軽快だし、予想よりいろいろできて便利です。特にダイアログ表示、CSV ファイル出力機能、SQL ファイルからの SQL 文実行機能は気に入りました。

    • テーブルのデータを表示するだけでなく編集もできます。
    • DB 内の(たぶん全ての)オブジェクトの DDL や、テーブル個別の DDL が表示、出力できます。
    • Console を表示して SQL を入力して実行できます。select 文であれば結果セットが表示され、CSV ファイル等に出力することもできます。
    • GUI でテーブルを新規作成できます。
    • 2つのテーブルを比較できます。カラムを移動させたりもできるようです ( 試していません )。
    • テーブルのダイアグラムが出力できます ( 選択したテーブルだけ出力することも可 )。画像ファイルに保存することもできます。ただし表示されたダイアログの画像を直接コピーすることはできませんでした ( 一度画像ファイルとして保存する必要があります )。

      f:id:ksby:20150531004917p:plain

    • テーブルのデータを CSV ファイルや XMLJSON 等の形式で出力することができます。

      f:id:ksby:20150531005031p:plain

      f:id:ksby:20150531005151p:plain

      設定すればカラムを先頭行に出力できます。

      f:id:ksby:20150531005320p:plain

    • SQL ファイルで、SQL 文の文法チェックが行われます。

      ■Data Source を設定していない場合 f:id:ksby:20150531011844p:plain

      ■Data Source を設定している場合 f:id:ksby:20150531012036p:plainカラム名が正しい場合、紫色の太字で表示されます。

    • SQL ファイルで、Run メニューが表示されるようになります。選択すると SQL 文が実行され、エラーがないか確認できます。

      f:id:ksby:20150531012458p:plain

      f:id:ksby:20150531012556p:plain

    • SQL ファイル上で Alt+Enter を押すと「Run Query in Console」メニューが表示され、選択して実行すると Database Console で SQL ファイルが実行されて結果セットが表示されます。

      f:id:ksby:20150531014501p:plain

      f:id:ksby:20150531014613p:plain

    • SQL ファイルで、DB の関数一覧が表示されます。PostgreSQL でしか試していませんが、たぶん Oracle なら Oracle の、MySQL なら MySQL の関数が表示されると思われます。

      f:id:ksby:20150531013406p:plain

      f:id:ksby:20150531013607p:plain

    • SQL ファイルに SQL を書く時に、Database View からカラムを Drag&Drop で持ってこれます。

      f:id:ksby:20150531080757p:plain

      f:id:ksby:20150531080909p:plain

    • SQL ファイルに SQL を書く時にテーブルやカラム、SQL予約語の一覧がすばやく出てきます。シングルクォーテーション(') や括弧も補完してくれます。今はテーブル数が2個しかありませんが、テーブル数が増えてもこのスピードで補完してくれるならば、これはすごい便利ですね。

      f:id:ksby:20150531081636p:plain

Analyze Dependency Matrix

ライセンスを買った時は全然知らなかったのですが、モジュール間の依存関係をマトリック表示してくれる機能がありました。

  1. メインメニューから「Analyze」-「Analyze Dependency Matrix...」を選択します。

  2. 「Specify Analyze Dependency Matrix Scope」ダイアログが表示されます。「OK」ボタンをクリックします。

    f:id:ksby:20150531085705p:plain

  3. モジュールの依存関係のマトリックス表が表示されます。下の画像の場合、MailsendController クラスは MailsendFormValidator, MailsendService, MailsendForm クラスを使用している ( uses ) という意味になります。

    f:id:ksby:20150531090106p:plain

  4. マトリックス表の数字が表示されている部分でコンテキストメニューを表示し、「Find Usages for Dependencies」を選択します。

    f:id:ksby:20150531091218p:plain

    Find View が表示され、使用されている部分が表示されます。Find View 上でダブルクリックするとソースファイルの該当箇所が表示されます。

    f:id:ksby:20150531091400p:plain

UML のクラス図作成機能

  1. Project View でコンテキストメニューを表示して「New」-「Diagram」-「Java Class Diagram」を選択します。

    f:id:ksby:20150531095353p:plain

  2. 「Create Java Class Diagram」ダイアログが表示されます。ファイル名を入力して「OK」ボタンをクリックします。

    f:id:ksby:20150531100109p:plain

  3. クラスをダイアグラム上に Drag&Drop して、ダイアログ左上の Fields/Constructors/Methods/Properties/Inner Classes から表示させたいものをクリックした後、ダイアログ中央の「Apply Current Layout」ボタンをクリックすると自動整形してくれます。

    f:id:ksby:20150531100435p:plain