SpringBootはWebアプリケーションを作るためのフレームワークであるが
難しい部分も多いため、
今回は「SpringBootによる開発を行う前に知っておくと良いこと」
を紹介する。
SpringBootとは
SpringBootとは
JavaでWebアプリケーションを作成するためのフレームワーク。
通常、Javaを使ってWebアプリケーションを作成しようとすると
Webアプリケーションとして当たり前の動作を
いちいちプログラムとして書いていく必要がある。
それでは非常に効率が悪いため
JavaでWebアプリケーションを作る場合
ほぼ必ずSpringBootというフレームワークを利用する。
SpringBootでは普通に書くと面倒な処理を
アノテーション(@hogeのようなアットマークがついた記法)
を使うことで、いい感じにやってくれる。
これが便利な機能である一方、
最初は理解が難しい機能でもある。
MVCモデル
MVCモデルとは、考え方、設計思想の名前である。
- Model(データを管理する)
- View(画面の表示をする)
- Controller(全体の処理の制御をする)
の頭文字を取ったもので、SpringBootを利用する上で重要な考え方である。
これを理解していないとSpringBootを使うことは難しい。
Controller
Controllerでは主に、全体の処理の制御を行う。
具体的には
「特定のアドレスにアクセスしたときに実行される処理」
を制御する。
ドメインがexample.com
のWebサービスに対して
example.com/top/
にアクセスされたらトップページを表示するexample.com/api/user
にアクセスされたら、内部のAPIを呼び出し、ユーザー一覧を返すexample.com/blog/
にアクセスされたら、ブログページを表示する
などのコントロールを行う。
View
Viewは画面の表示を担当する。
具体的には「htmlファイルを作成する」
という処理を担当する。
SpringBootでは、Thymeleafというテンプレートエンジンを使って
いろいろなデータをhtmlに埋め込み、
それを画面として表示する場合が多い。
Model
Modelはデータの管理を担当する。
今どきのWebアプリケーションでは、
データを使わないことなんてほとんどない。
大抵の場合、外部のAPIから取得したデータや
データベースから取得したデータを
Modelの内部で管理しておく。
つまり
特定のアドレスにアクセスがあったとき
Controllerが処理をし始め、Modelで管理されているデータを
JSON形式で返却する場合、それはWebAPIとなる。
特定のアドレスにアクセスがあったとき
Controllerが処理をし始め、Modelで管理されているデータを
Viewで管理しているhtmlに埋め込み、返却する場合
それはWebサイトとなる。
Mavenとは
SpringBootを扱う上でもう一つ覚えておくべきことがMavenである。
SpringBoot、Nuxt.js、Djangoなどのフレームワークは
基本的に初期設定のまま利用できることが多いが、
ライブラリ(パッケージ、モジュール)と呼ばれる
「便利な機能をひとまとめにしたもの」
を必要に応じてダウンロードし、利用することが多い。
SpringBootの場合、Mavenと呼ばれるツールを使って
このライブラリを管理する。
(厳密にはMavenはライブラリ管理だけを行うわけではない)
このMavenの特徴として
「利用したいライブラリはpom.xml
に全部書く」ことで
必要なライブラリを使用可能になる。
開発途中で「このライブラリが必要になった」
と思ったら、pom.xml
に追加で記述すれば良いだけだ。
基本的にはpom.xml
に書くだけでeclipseやらIntelliJが勝手にダウンロードしてくれる。
勝手にやってくれなかったら、mavenコマンドを使って手動で実施すれば良い。
また、Gradleと呼ばれるものも、Mavenと同じことができる。
まとめ
- SpringBootはJavaでWebアプリケーションを作るためのフレームワーク
- MVCモデルという概念を元に実装する
- 必要なライブラリは
pom.xml
で管理する
SpringBootを使ってWeb開発を行うための
最低限の知識は以上である。
また、実際にJava開発をするときは
以下のどちらかのエディターを使うと良い。
- eclipse(無料)
- IntelliJ(有料版、無料版あり)
初心者であれば一旦eclipseを使うのが良いだろう。