Spring Boot 3 ではじめる 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アプリケーションを作成できる

対象者

■ Webアプリケーションをはじめて学習する方
■ Spring Bootをはじめて学習する方
■ Spring Bootの基本的な使い方を知りたい方

前提条件

■ 基本的なJavaプログラミングができる方(基本文法・オブジェクト指向・標準APIの利用など)
■ SQL(SELECT/INSERT/UPDATE/DELETE)の基本構文を知っている方
■ HTMLを使って簡単なWebページを作成できる方

研修概要

  • 実行環境
    ■ Webブラウザ(Google Chrome)
    ■ JDK 21
    ■ Spring Boot 3.x 、 Spring Framework 6.x
    ■ Hibernate 6.x 、 Spring Data JPA 3.x
    ■ MySQL 8
    ※使用するソフトウェアおよびバージョンについては予告なく変更する可能性がありますのでご了承ください。
  • 配布資料
    オンライン参加の方は、研修当日にPDFのテキストを配布いたします。
    オフライン(対面)参加の方は、研修当日に紙媒体のテキストを配布いたします。
  • 受講料
    181,500円(税込)/人
  • お支払い
    研修終了後に請求書払いとなります。
    請求書は研修終了日の属する月の月末までに送付いたします。
  • 開催日数
    3日間
  • 時間
    9時30分~17時00分

カリキュラム

■ Spring Framework/Spring Boot概要
 □ Spring Frameworkとは
 □ Spring Bootとは、Spring Bootのメリット 、Spring Bootのサポート期間
 □ Spring Boot 3 と Spring Boot 2 の主な違い
■ 超速習DIコンテナ
 □ DIコンテナとは、Beanとは
 □ アノテーションによるBean定義
 □ Java ConfigによるBean定義
 □ それぞれのBean定義の使い分け
■ Webアプリケーション概要
 □ Webアプリケーション システム構成
 □ HTTP、HTTPリクエスト、HTTPレスポンス
■ Spring MVCとThymeleafでHello World
 □ Spring MVC/Thymeleaf
 □ コントローラーとViewでHello World
 □ コントローラーからViewにデータ(現在日時)を渡す
 □ クライアントからの入力 : リクエストパラメータ
 □ リクエストパラメータを受け取る
 □ 応用 : リクエストパラメータをFormクラスで受け取る
 □ リダイレクト機能の作成
■ Bean Validationによる入力検証
 □ 基本的な入力検証
 □ 相関バリデーション
■ 永続化層 Spring Data JPA
 □ 永続化層とは
 □ Spring Data JPA
 □ エンティティクラス、ListCrudRepository、JpaRepository
 □ Spring Data JPAによる基本DBアクセス(CRUD)
■ もっと Spring Data JPA
 □ ListPagingAndSortingRepository
 □ ページネーション/列ソートを利用した検索
 □ 命名規則ベースのメソッド名を使って条件検索
 □ 命名規則ベースのメソッド名を使って条件に応じた削除

■ ビジネスロジック層
 □ ビジネスロジック層とは
 □ Dependency Injectionとは
 □ 永続化層との統合
 □ @Transactionalによるトランザクション管理
 □ Spring Data JPAリポジトリを利用した更新処理
 □ JPA EntityManagerの管理下に置かれるエンティティ
 □ Spring Data JPA : 更新/削除SQLが発行されるタイミング
 □ コラム:AOPによるトランザクション管理について
 □ WebアプリケーションでのEntityManagerの生存期間
■ プレゼンテーション層
 □ プレゼンテーション層とは
 □ ビジネスロジック層との統合
 □ コラム : 一覧ページにページネーションを設置 (Server Side Pagination)
 □ コラム : 静的リソースのキャッシュの制御
■ セッション管理 (例外処理と順番入れ替え)
 □ HTTPセッションの仕組み
 □ Spring MVCでのセッション管理
■ 例外処理 アプリケーション例外とエラーページ
 □ Whitelabel Error Page
 □ 業務エラーに対応した独自例外クラスとビジネスロジック層での例外処理
 □ アプリケーションで発生した例外のハンドリング
 □ @ControllerAdviceを付加した例外ハンドラークラス
 □ Spring Bootでのエラーページ
■ ファイルアップロード
 □ MIMEタイプ
 □ マルチパートタイプ、MultipartFile
 □ フォーム、コントローラー、サービスクラスの改造
 □ 登録画面と更新画面にイメージファイルのアップロードを追加
 □ 詳細表示画面にイメージ表示を追加


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


■ 付録 (研修では実施しませんが、以下の付録を配布いたします)
 □ 永続化層 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アプリケーションへのアクセス

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

オンライン研修環境

  • 使用ツール
    動画配信:Zoom
    質疑応答:オンラインチャットシステム(Mattermost)
    演習環境:仮想デスクトップ

    ※業務用PCにZoomアプリをインストールできない場合は、ブラウザからのご参加をお願いします。
    ※Zoomのシステム要件について、より詳細な情報は、こちらをご参照ください。
    ※Mattermostおよび演習環境は弊社にてご用意いたします。
  • システム要件
    ・インターネットに常時接続できること
     (アクセス制限のないネットワーク環境をご利用ください)
    ・Webカメラおよびマイク
    ※PC本体の他に、モニターやiPad等の拡張ディスプレイをご用意いただくことを推奨いたします。
     (1台:Zoom、オンラインチャットシステム用、1台:演習環境用)
    ※事前にアクセス確認をご希望される方はお問い合わせください
  • 対応OS
    Windows
    上記以外の環境でもご受講いただくことが可能ですが、操作感が異なる可能性がある点をご了承ください。
  • WEBブラウザ
    Google Chrome
    上記以外の環境でもご受講いただくことが可能ですが、操作感が異なる可能性がある点をご了承ください。

開催日程

  • 申込受付終了
    2024年11月20日〜2024年11月22日 (3日間) 【開催終了】
    【会場】オンライン
    【価格】181,500円 (税込)/人
  • 申込受付終了
    2024年12月9日〜2024年12月11日 (3日間) 【開催終了】
    【会場】オンライン
    【価格】181,500円 (税込)/人
  • 申し込む
    2025年1月15日〜2025年1月17日 (3日間) 【開催未定】
    【受付】2025年1月6日まで
    【会場】オンライン
    【価格】181,500円 (税込)/人
  • 申し込む
    2025年2月12日〜2025年2月14日 (3日間) 【開催未定】
    【受付】2025年2月3日まで
    【会場】オンライン
    【価格】181,500円 (税込)/人

学習目標

■ Webアプリケーションの基本を理解する
■ Spring Bootの概要、メリット、デメリットを説明できる
■ DBアクセスを伴う基本的なWebアプリケーションを作成できる

対象者

■ Webアプリケーションをはじめて学習する方
■ Spring Bootをはじめて学習する方
■ Spring Bootの基本的な使い方を知りたい方

前提条件

■ 基本的なJavaプログラミングができる方(基本文法・オブジェクト指向・標準APIの利用など)
■ SQL(SELECT/INSERT/UPDATE/DELETE)の基本構文を知っている方
■ HTMLを使って簡単なWebページを作成できる方

研修概要

  • 実行環境
    ■ Webブラウザ(Google Chrome)
    ■ JDK 21
    ■ Spring Boot 3.x 、 Spring Framework 6.x
    ■ Hibernate 6.x 、 Spring Data JPA 3.x
    ■ MySQL 8
    ※使用するソフトウェアおよびバージョンについては予告なく変更する可能性がありますのでご了承ください。
  • 配布資料
    オンライン参加の方は、研修当日にPDFのテキストを配布いたします。
    オフライン(対面)参加の方は、研修当日に紙媒体のテキストを配布いたします。
  • 受講料
    181,500円(税込)/人
  • お支払い
    研修終了後に請求書払いとなります。
    請求書は研修終了日の属する月の月末までに送付いたします。
  • 持ち物
    特にございません
  • 開催日数
    3日間
  • 時間
    9時30分~17時00分

カリキュラム

■ Spring Framework/Spring Boot概要
 □ Spring Frameworkとは
 □ Spring Bootとは、Spring Bootのメリット 、Spring Bootのサポート期間
 □ Spring Boot 3 と Spring Boot 2 の主な違い
■ 超速習DIコンテナ
 □ DIコンテナとは、Beanとは
 □ アノテーションによるBean定義
 □ Java ConfigによるBean定義
 □ それぞれのBean定義の使い分け
■ Webアプリケーション概要
 □ Webアプリケーション システム構成
 □ HTTP、HTTPリクエスト、HTTPレスポンス
■ Spring MVCとThymeleafでHello World
 □ Spring MVC/Thymeleaf
 □ コントローラーとViewでHello World
 □ コントローラーからViewにデータ(現在日時)を渡す
 □ クライアントからの入力 : リクエストパラメータ
 □ リクエストパラメータを受け取る
 □ 応用 : リクエストパラメータをFormクラスで受け取る
 □ リダイレクト機能の作成
■ Bean Validationによる入力検証
 □ 基本的な入力検証
 □ 相関バリデーション
■ 永続化層 Spring Data JPA
 □ 永続化層とは
 □ Spring Data JPA
 □ エンティティクラス、ListCrudRepository、JpaRepository
 □ Spring Data JPAによる基本DBアクセス(CRUD)
■ もっと Spring Data JPA
 □ ListPagingAndSortingRepository
 □ ページネーション/列ソートを利用した検索
 □ 命名規則ベースのメソッド名を使って条件検索
 □ 命名規則ベースのメソッド名を使って条件に応じた削除

■ ビジネスロジック層
 □ ビジネスロジック層とは
 □ Dependency Injectionとは
 □ 永続化層との統合
 □ @Transactionalによるトランザクション管理
 □ Spring Data JPAリポジトリを利用した更新処理
 □ JPA EntityManagerの管理下に置かれるエンティティ
 □ Spring Data JPA : 更新/削除SQLが発行されるタイミング
 □ コラム:AOPによるトランザクション管理について
 □ WebアプリケーションでのEntityManagerの生存期間
■ プレゼンテーション層
 □ プレゼンテーション層とは
 □ ビジネスロジック層との統合
 □ コラム : 一覧ページにページネーションを設置 (Server Side Pagination)
 □ コラム : 静的リソースのキャッシュの制御
■ セッション管理 (例外処理と順番入れ替え)
 □ HTTPセッションの仕組み
 □ Spring MVCでのセッション管理
■ 例外処理 アプリケーション例外とエラーページ
 □ Whitelabel Error Page
 □ 業務エラーに対応した独自例外クラスとビジネスロジック層での例外処理
 □ アプリケーションで発生した例外のハンドリング
 □ @ControllerAdviceを付加した例外ハンドラークラス
 □ Spring Bootでのエラーページ
■ ファイルアップロード
 □ MIMEタイプ
 □ マルチパートタイプ、MultipartFile
 □ フォーム、コントローラー、サービスクラスの改造
 □ 登録画面と更新画面にイメージファイルのアップロードを追加
 □ 詳細表示画面にイメージ表示を追加


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


■ 付録 (研修では実施しませんが、以下の付録を配布いたします)
 □ 永続化層 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アプリケーションへのアクセス

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

開催日程

この研修を見ている方はこちらの研修も見ています

コースフロー

バックエンド開発を学ぶ Javaプログラミング入門 Javaプログラミング基礎 Javaプログラミング作法 JUnitによるテスト入門 PHPで学ぶはじめてのWebアプリケーション PHP基礎 Laravel入門 Spring Boot 3 ではじめるRESTful Web Service開発入門 Spring Boot 3 ではじめるWebアプリケーション開発入門 Spring for GraphQL ではじめるGraphQLアプリケーション開発入門 <速習>Spring Boot 3 へのマイグレーション Spring Boot テスト 入門 Spring Securityではじめる認証・認可入門
バックエンド開発を学ぶ