ホーム > Spring Boot 3 ではじめるWebアプリケーション開発入門

Spring Boot 3 ではじめるWebアプリケーション開発入門


期間  3日間 時間  9:30~17:00
価格(税込)  181,500円(税込) 主催  株式会社カサレアル
コース種別  集合研修  
形式  講義+実機演習 コースコード  JAC0168R
日程 会場 空席状況 実施状況 選択

2024年5月15日(水) ~ 2024年5月17日(金)

カサレアル(オンライン)

  お申し込み後確認

2024年6月17日(月) ~ 2024年6月19日(水)

カサレアル(オンライン)

  お申し込み後確認

2024年8月5日(月) ~ 2024年8月7日(水)

カサレアル(オンライン)

  お申し込み後確認

2024年8月21日(水) ~ 2024年8月23日(金)

カサレアル(オンライン)

  お申し込み後確認

2024年9月11日(水) ~ 2024年9月13日(金)

カサレアル(オンライン)

  お申し込み後確認

2024年9月24日(火) ~ 2024年9月26日(木)

カサレアル(オンライン)

  お申し込み後確認

※「キャンセル待ち」でお申し込みの方には、別途メールにてご連絡いたします。
※「実施確定」表示のない日程は、お申し込み状況により開催中止になる場合がございます。
※ お申込期日が過ぎた日程は、「お問い合わせください」と表示されます。
※ トレノケート主催コース以外の空席状況は、残席数に関わらず「お申し込み後確認」と表示されます。
※ トレノケート主催コース以外では、主催会社のお席を確保した後に受付確定となります。
お申込みに関するお問い合わせはこちらから

ワンポイントアドバイス

・弊社経由で他社主催研修へお申込みの場合、弊社が「訓練の実施機関」ではないため、人材開発支援助成金の申請書類にトレノケートは署名できません。「主催」欄をご確認ください。本研修コースはトレノケート経由のお申込では人材開発支援助成金の申請ができない旨を予めご了承のうえ、お申込みください。

本コースは、オンラインで受講いただける日程が用意されております。
(視聴環境につきましては、重要なご連絡・ご確認事項欄よりご確認ください。)

重要なご連絡・ご確認事項

<オンライン研修環境>
■使用ツール
・動画配信:Zoom
 ※業務用PCに追加アプリをインストールできない場合は、ブラウザからのご参加をお願いします。
・質疑応答:オンラインチャットシステム (ご利用になれない場合は、Zoomのチャット機能で代替可能です)
・演習環境:仮想デスクトップ

■システム要件
・インターネットに常時接続できること
・Webカメラおよびマイク
・PC本体の他に、モニターやiPad等の拡張ディスプレイをご用意いただくことを推奨いたします。
 (1台目:Zoom、オンラインチャットシステム用、2台目:演習環境用)

■OS
・Windows 10

■Webブラウザ
・Google Chrome

対象者情報

対象者
・Webアプリケーションをはじめて学習する方
・Spring Bootをはじめて学習する方
・Spring Bootの基本的な使い方を知りたい方
前提条件
□基本的なJavaプログラミングができる方(基本文法・オブジェクト指向・標準APIの利用など)
□SQL(SELECT/INSERT/UPDATE/DELETE)の基本構文を知っている方
□HTMLを使って簡単なWebページを作成できる方

学習内容の詳細

コース概要
Webアプリケーションの基礎をいま最も普及しているJavaフレームワーク「Spring Boot」を使って学習するコースです。
実際にプログラムを作成し動作を確認しながら学習することができます。

Spring Bootは、VMware社を中心にオープンソースで開発されている、高生産性・高機能性なフレームワークです。
本コースでは、Webアプリケーション開発未経験者の方を対象として、基本的なWebアプリケーション開発方法を講義+演習で学習します。
Webアプリケーションの基礎となるHTTPプロトコル、Get/Postメソッド、リクエストパラメータ、HTML(form)などを交えながらSpring MVCとThymeleafを利用した画面のあるWebアプリケーションから、Spring Data JPAによるDBアクセス、ファイルアップロードの実装まで、Webアプリケーションとして必要となる機能を実装できるようになります。
Virtual Threads (Java 21)に対応したSpring Boot 3.2環境を使って、Webアプリケーションを開発します。
今最も主流であるフレームワークによるモダンな開発技術を、是非この機会に体験してみてください。
学習目標
● Webアプリケーションの基本を理解する
● Spring Bootの概要、メリット、デメリットを説明できる
● DBアクセスを伴う基本的なWebアプリケーションを作成できる
学習内容
1. Spring Framework/Spring Boot概要
  - Spring Frameworkとは
  - Spring Bootとは、Spring Bootのメリット 、Spring Bootのサポート期間
  - Spring Boot 3 と Spring Boot 2 の主な違い

2. 超速習DIコンテナ
  - DIコンテナとは、Beanとは
  - アノテーションによるBean定義
  - Java ConfigによるBean定義
  - それぞれのBean定義の使い分け

3. Webアプリケーション概要
  - Webアプリケーション システム構成
  - HTTP、HTTPリクエスト、HTTPレスポンス

4. Spring MVCとThymeleafでHello World
  - Spring MVC/Thymeleaf
  - コントローラーとViewでHello World
  - コントローラーからViewにデータ(現在日時)を渡す
  - クライアントからの入力 : リクエストパラメータ
  - リクエストパラメータを受け取る
  - 応用 : リクエストパラメータをFormクラスで受け取る
  - リダイレクト機能の作成

5. Bean Validationによる入力検証
  - 基本的な入力検証
  - 相関バリデーション

6. 永続化層 Spring Data JPA
  - 永続化層とは
  - Spring Data JPA
  - エンティティクラス、ListCrudRepository、JpaRepository
  - Spring Data JPAによる基本DBアクセス(CRUD)

7. もっと Spring Data JPA
  - ListPagingAndSortingRepository
  - ページネーション/列ソートを利用した検索
  - 命名規則ベースのメソッド名を使って条件検索
  - 命名規則ベースのメソッド名を使って条件に応じた削除

8. ビジネスロジック層
  - ビジネスロジック層とは
  - Dependency Injectionとは
  - 永続化層との統合
  - @Transactionalによるトランザクション管理
  - Spring Data JPAリポジトリを利用した更新処理
  - JPA EntityManagerの管理下に置かれるエンティティ
  - Spring Data JPA : 更新/削除SQLが発行されるタイミング
  - コラム:AOPによるトランザクション管理について
  - WebアプリケーションでのEntityManagerの生存期間

9. プレゼンテーション層
  - プレゼンテーション層とは
  - ビジネスロジック層との統合
  - コラム : 一覧ページにページネーションを設置 (Server Side Pagination)
  - コラム : 静的リソースのキャッシュの制御

10. セッション管理 (例外処理と順番入れ替え)
  - HTTPセッションの仕組み
  - Spring MVCでのセッション管理

11. 例外処理 アプリケーション例外とエラーページ
  - Whitelabel Error Page
  - 業務エラーに対応した独自例外クラスとビジネスロジック層での例外処理
  - アプリケーションで発生した例外のハンドリング
  - @ControllerAdviceを付加した例外ハンドラークラス
  - Spring Bootでのエラーページ

12. ファイルアップロード
  - MIMEタイプ
  - マルチパートタイプ、MultipartFile
  - フォーム、コントローラー、サービスクラスの改造
  - 登録画面と更新画面にイメージファイルのアップロードを追加
  - 詳細表示画面にイメージ表示を追加

13. ※上記スケジュールは予定となり、当日若干前後する可能性がありますのでご了承ください。

付録: (研修では実施しませんが、以下の付録を配布いたします)
  - 永続化層 Spring Data JPA 補足
  ・ Spring Data オーバービュー
  ・ <参考> Spring Data JPAとSpring Data JDBCの比較(概要)
  - Spring Data REST (サンプルコードあり)
  ・ Spring Data JPAリポジトリをRESTful WebAPIとして公開する
  ・ RESTful Web Service
  ・ Spring Data REST
  ・ HATEOASとHAL
  ・ リポジトリ リソース
  ・ 実行確認 全件検索(ページネーション、ソート指定)、1件取得、クエリーメソッド
  ・ HTTPクライアントツール
  ・ 実行確認 更新系メソッド (POST/PUT/PATCH/DELETE)
  - Spring Data RESTでBean Validationによる入力検証 (サンプルコードあり)
  ・ Spring Data RESTのイベント
  ・ イベントリスナーにバリデーターの登録
  ・ エンティティクラスにBean Validationのアノテーションを付加
  ・ 動作確認 (POST/PUT/PATCH)
  - さらに Spring Data JPA (サンプルコードあり)
  ・ エンティティ同士を関連させる(@OneToOne/@OneToMany/@ManyToOne/@ManyToMany/@JoinColumn)
  ・ FetchType と参照エンティティがロードされるタイミング
  ・ 参照エンティティのカスケード操作 (CascadeType)
  ・ <参考> Spring Data JDBC版 エンティティの関連 サンプルプログラム
  - N+1 SELECT問題とその解決方法 (サンプルコードあり)
  ・ N+1 SELECT問題
  ・ Jakarta Persistence query language (JPQL)
  ・ @Query
  ・ サンプルアプリケーションから実行確認 (@Query版検索メソッド)
  ・ JOIN FETCH によるN+1 SELECT問題の解決
  ・ アプリケーションの実行確認 (N+1 SELECT問題 対策版)
  ・ コラム : JPQL DISTINCTの解釈 (hibernate 5系までとhibernate 6系の違い)
  - レコードクラス (Java16~) (サンプルコードあり)
  - ビジネスロジック層 補足 (サンプルコードあり)
  ・ Spring Data JPAとSpring Data JDBCの比較(詳細)
  - 参考 Spring Data JDBC版のWebアプリケーション サンプル
  - 参考 Spring Boot2 (Spring Data JPA 2/hibernate 5) 版 アプリケーション サンプル (サンプルコードのみ)
  - 永続化層/ビジネスロジック層のテスト (サンプルコードあり)
  ・ コンテナからBeanを取り出し永続化層/ビジネスロジック層をテストする(@SpringBootTestを使った統合テスト)
  ・ モック(永続化層)を利用しビジネスロジック層を単体テストする(Mockito @Mock/@InjectMocksを使う)
  ・ コラム Beanのスパイを使って統合テストをおこなう(@ExtendWith(SpringExtension.class)/@SpyBean)
  - プレゼンテーション層のテスト (サンプルコードあり)
  ・ MVC Test Framework
  ・ MockMvcを使ってプレゼンテーション層をテストする
  ・ コラム HtmlUnitを用いたEnd-to-Endテスト
  - ログ出力 (サンプルコードあり)
  ・ ロギングライブラリ
  ・ ログレベルの種類
  ・ ログ出力のサンプルコード
  ・ アプリケーションの実行とログ出力結果 (ログレベル設定なし:デフォルト)
  ・ ログレベルの設定
  - パッケージング・デプロイ・アクセス (サンプルコードあり)
  ・Spring Initializr : パッケージング Jar/War でのひな型プロジェクトの差分
  ・<参考> Warファイルをデプロイすると行われる処理
  ・パッケージング
  ・アプリケーションサーバーへのデプロイ & Webアプリケーションへのアクセス

※最新でより良い内容をお届けするため、一部の学習項目を予告なく変更する可能性がありますのでご了承ください。

実習/演習内容詳細

ソフトウェア
ハードウェア
※使用ソフトウェアについて
変更頻度が高いため、詳細につきましてはお問い合わせください。

コース関連付加情報

ご注意・ご連絡事項

・本コースは株式会社カサレアルが開催いたします。
・株式会社カサレアル開催コースのキャンセル・日程変更・受講者変更は9営業日前までとさせていただきます。
※受講に関する注意点※
進行の都合上、研修開始時間を過ぎてからのご参加はご遠慮いただいております。
大変恐れ入りますが、研修開始時間までにご参加いただけていない場合、当日キャンセル扱いをさせていただく場合がございますのでご注意ください。

おすすめのコースフロー図を見る