教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
本教材では、JavaのデファクトスタンダードであるフレームワークSpringBootを用いたWebAPIの開発を行います。
本教材の開発を通し、SpringBootでアプリケーションを開発する現場で開発するための基礎習得を目指します。
2022年現在において、業務アプリケーションにおけるJavaの利用率が高いためです。
Stackoverflow Developer Survey 2022より、プロの現場において33.4%の回答者がJavaを利用していると回答しています。全言語中6位ですが、サーバーサイドで使用される言語に絞ると43.51%のPythonに次ぐ2位の結果であり、Javaはプロの現場で多く使用されていることがわかります。
2022年現在において、SpringBootが最も良く使用されているJavaフレームワークであるためです。
SpringBootはJavaのフレームワークの1つです。JVM Ecosystem Report 2021の結果によると、アンケート回答者のうち57.6%がSpringBootを用いており、2位であるSpring MVCの28.7%を大きく上回っています。また、SpringBootはSpring MVCをより簡易に使用できるようにラップしたフレームワークであるため、基本的にはSpring MVCと同一です。以上から、2021年においてJavaアプリケーションの86.3%はSpringで開発されていることがわかります。
SpringBootは、Convention over configuration(設定よりも規約)という思想に基づいており、煩わしい設定不要で実装できることを目指して作られています。これにより、少ないコード量で手軽にアプリケーションを実装できます。
Javaを一度も触ったことがない方はProgate等で触ってみることをお勧めします。
本教材はサーバーサイドのSpringBootアプリケーション開発習得を目的としています。下記の解説は行いません。
本教材で開発していただくAPI動作確認用の画面はReactで開発しています。Reactによる画面開発に今日のある方は別途Reactの教材を用いて学んでいただくことをお勧めします。
2022年7月時点で最新のLTSであるJava17をターゲットにいたします。
以下の機能を持つSlack風のチャットアプリケーションを開発します。
特にございません。
IT企業に勤める現役エンジニアです。
サーバーサイドに強みを持っており、インフラ構築からアプリケーション実装まで広く経験しています。
パブリッククラウドを用いた開発も行っており、AWS・Azure・Google Cloudを用いています。
本教材で開発するサンプルアプリとアーキテクチャの概要をご説明します。
本教材を進めるうえで必要となる環境を構築します。
SpringBootの最初のプロジェクトを作り、Hello worldを動かしてみます。
spring-testとDBUnitを用いて、WebAPIのテスト方法を学びます。
SpringBootの基礎を学びながらチャンネル作成機能を開発します。
チャンネル作成機能をベースにチャンネル更新機能を追加します。
チャンネル内にメッセージを投稿する機能を追加します。
メッセージの部分一致検索を行う機能を追加します。
チャンネルおよびチャンネル内のメッセージを削除する機能を追加します。
spring-sessionを用いて認証機能を追加します。
RDBMSとしてMySQLを導入し、アプリケーションを停止してもデータが永続化されるようにします。
ログ出力やエラーハンドリングなど、ユーザー向けの直接的な機能以外の品質を向上させます。