8月になってしまいました、熱中症には気を付けましょう。
Spring Frameworkについてすこしづつメモしていきたいと思います。
Spring Frameworkはwikipediaの説明によると、
Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークである。単に Spring とも呼ばれる。
Rod Johnson が自著 Expert One-on-One J2EE Design and Development(Wrox Press、2002年10月)と共にリリースしたのが最初である。
.NET Framework 向けの移植版もある。
2006年、Spring Framework 1.2.6 は Jolt productivity award を受賞した。
と、14年ぐらいの歴史があるようです。
現在はSpring Framework4までのバージョンがあるみたいです。(2016年8月時点)
- Spring Framework
- Java EE
- play framework
- JAX-RS
- Struts2
- Seasar2
などがあるようです。
2018年8月24日(金)追記:↓ ここから
通りすがりさんよりご指摘をいただき、JAX-RSは、Javaのフレームワークではなく、Webフレームワークということで修正いたしました。
JAX-RSとは
⇧ 最近のJavaのフレームワークの動向については、上記サイト様が詳しいです。
2018年8月24日(金)追記:↑ ここまで
⇩ 最近のJavaのフレームワークの動向については下記サイトへ
・テックノート - 2015年のJavaフレームワークのトレンド
Spring Frameworkの構造
Spring Frameworkのリファレンスによると、
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/
図のようなかたまりがSpring Frameworkの全体像になるようです。
20個ぐらいのモジュールで構成されていて、それぞれ、
- Core Container
- Data Access/Integration
- Web
- AOP(Aspect Oriented Programming)
- Instrumentation
- Messaging
- Test
といったグループに分けられているようです。
これらをすべて使う必要はなく、自分の手がけるプロジェクトで必要になりそうなものを随時、導入していくような感じで開発をしていくようです。
STS(Spring Tool Suite)を使う前に、Javaのプログラムの特徴
Javaでプログラムを動かす場合、JavaVM(Java Virtual Machine)、いわゆるJava仮想マシンを起動させる必要があり、下記のメソッドを持つクラスが絶対に必要みたいです。
public static void main(String args[]);
このメソッドを、
public static void main(String args[]){ // ここに処理を記述 }
のように記述することで、JavaVMが起動して、Javaのプログラムが実行されるようです。そして、今回は、自分では『public static void main(String args)』を書かないプロジェクトを作成します。
代わりに『public static void main(String args)』を実行してくれるのが、アプリケーションサーバというものみたいです。
『Spring Framework4 プログラミング入門(著:掌田津耶乃)』で、STSを使ってプロジェクトを作成した際に思ったことは、
- アプリケーションサーバのみ(デスクトップアプリケーション)
- アプリケーションサーバ + Webサーバ(Webアプリケーション)
の2パターンがあるようです。
Javaでは、Webページをサーバ上で処理するために、『Java Servlet』というクラスが用意されていて、このクラスを処理するのが『Servletコンテナ』というもので、その内の1つがTomcatというもののようです。
サーブレットコンテナ 【 servlet container 】 Servletコンテナ / Webコンテナ
Web container / ウェブコンテナ
サーブレットコンテナとは、Javaサーブレット(servlet)の実行環境となるソフトウェア。
サーブレットはWebサーバ上で動作させるJava言語で書かれた簡易なプログラムで、クライアント(Webブラウザなど)からの要求を受けて処理を行い、結果をWebページとして送信する。サーブレットは単体では動作せず、Webサーバからの処理要求を受け付けてサーブレットの記述に従って実際の処理を行うソフトウェアが必要で、これをサーブレットコンテナという。
Java EEの一部として仕様が決まっており、著名な実装としてはTomcatやJBoss、Jetty、WebLogic Server、WebSphere Application Serverなどがある。
JavaでWebアプリを実行するには、Servletコンテナ(Tomcatなど)が必要なのですが、STSには、デフォルトで『VMWare vFabric tc Server Developer Edition』というサーバが用意されていて、このサーバでWebアプリが実行できるようです。
STS(Spring Tool Suite)でWebのプロジェクトを作成してみる
C:¥sts-bundle¥sts-3.7.3.RELEASE¥STS.exe(自分のSTSをインストールした場所)で、STS.exeをダブルクリックでSTSを起動します。
『ファイル』>『新規』>『Spring Legacy Project』を選択します。
『プロジェクト名』を「MySampleWebApp」(プロジェクト名は何でもOK)とし、『テンプレート』で「Simple Spring Web Marven」を選択し、『完了』をクリックします。
『パッケージ・エクスプローラー』の『プロジェクト(MySampleWebApp)』上で右クリックし、『Maven』>『プロジェクトの更新』を選択します。
『MySampleWebApp』を選択し、『OK』をクリックします。
『実行』>『Maven install』を実行します。
『コンソール』に『BUILD SUCCESS』とか表示されればOK。
『コンソール』自体が出ていない場合は、『ウィンドウ』>『ビューの表示』>『コンソール』を選択で、『コンソール』のウィンドウが出ます。
サーバで実行するために、サーバにプロジェクトを追加します。
『VMWare vFabric tc Server Developer Edition』上で右クリックし、『追加および除去』を選択します。
『MySampleWebApp』を選択した状態で『追加』をクリックします。
『構成済み』に『MySampleWebApp』が移動すればOK。『完了』をクリックします。
サーバを起動します。
地球のアイコンをクリックでSTS内でブラウザを起動できます。直接パソコンのブラウザを起動でもOK。アドレスバーに『http://localhost:8080/MySampleWebApp』と入力し『Enterキー』を押し、『Click to enter』と表示されればOK。
サーバを停止します。
サーバが停止しました。
今回はこのへんで。