JavaのWebフレームワーク「Spring Boot」の最新版を落として導入してみました。
 今回は、「Hello World!」とブラウザ上で表示した時点をゴールとします。
環境を事前に準備する
| 項目 | 名称 | 
|---|---|
| PC | MacBook Pro 13,1 | 
| OS | macOS Sierra 10.12.6 | 
| IDE | Eclipse 4.7.3a Oxygen | 
- メニューから「ヘルプ」⇨「Eclipse マーケットプレース...」と選択します
 - 「STS」で検索し、出てきた「Spring ツール」をインストールします
 - 途中、署名なしコンテンツをインストールするかについて聞かれることもありますが、
気にせずOKを押せばいいです 

プロジェクトを作成する
- メニューから「ファイル」→「新規」→「その他」と進み、「Spring スターター・プロジェクト」
を選択します。今回は気分により、赤枠で囲った箇所を変更しました - なお、ここで言うところの「グループ」とは、パッケージを識別するための名称のことです。
「パッケージ」はJava本来のそれと同じものを指しますが、一般に「グループ」とは綴りを
揃えることが多いようです 

スタートアップ用のコードを確認
- 当該プロジェクトの、「
src/main/java」フォルダー内に、「SpringBootSample1Application.java」が出来ていることを確認します - ファイル名自体はプロジェクト作成時の設定に依存しますが、重要なのは「
@SpringBootApplication」というアノテーションが
付いているということです - このアノテーションは、Spring Bootにおけるスタートアップ用のルーチンであることを示します。
つまり、ここのmainメソッドからアプリが起動するのです 

Controllerを記述
 次に、「Hello World!」と表示するためのコードを記述します。
 なお、例えば@RequestMapping("/hoge/fuga/")と記述しますと、
「(サーバーのURL)/hoge/fuga/」に対するアクセスに対するレスポンスであることを表します。
| アノテーション | 意味 | 
|---|---|
@Controller | 
  MVCにおけるControllerの役割であることを示す。@RestControllerに変更すると、@ResponseBodyは不要になる | 
@RestController | 
  Viewと絡まないシンプルなControllerであることを示す | 
@RequestMapping("/") | 
  リクエスト(URL+"/")に対するレスポンスであることを示す | 
@ResponseBody | 
  レスポンスボディーであることを示す。@RestController適用時は不要 | 
package com.springboot.sample;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@EnableAutoConfiguration
public class MainController {
    @RequestMapping("/")
    @ResponseBody
    private String hello(){
        return "Hello World!";
    }
}
Mavenでプロジェクトを更新
 上記コードを書いた際に気づかれると思いますが、そのままだとこのコードは動きません。
 具体的には、「org.springframework.webが見つからない」などのトラブルが残っています。
これは、必要なパッケージをまだプロジェクトに取り込んでいないからです。

 上記にもある通り、このプロジェクトにおけるパッケージ管理はMavenが引き受けています。
そして、Mavenによってプロジェクトを更新する際は、プロジェクトを右クリックして「Maven」⇨「プロジェクトを更新...」し、
出てくるダイアログの「OK」をクリックすれば完了します。

 ところがここに罠が隠されています!
 Mavenで更新する前にある作業をする必要があるのです!
pom.xmlの修正を忘れずに
 ……具体的にはここです。これを追加し忘れてると、Mavenはこれをプロジェクト内に取り込まず、結果としてorg.springframework.webの問題が解決されません。  修正後にMavenで更新した後、プロジェクトを右クリックして
「実行」⇨「Spring Boot アプリケーション」をクリックすれば、Spring Bootがビルドされ、起動します。
 ログから察せられるように、Spring BootはTomcat上で動作し、一体となってWebサーバーとして振舞います。
参考資料にもスライドへのリンクを載せましたが、この際単一の.jarファイルとしてビルドされるのがSpring Bootの大きな特徴の一つです。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
プロキシに注意!
 Spring Bootが起動しますと、デフォルトではhttp://localhost:8080/にアクセスすればOKです。
上記のコードでは、「Hello Wolrd!」とだけ表示されたWebページを確認できるはずです。

ただし、このページはネットワーク設定でプロキシを使うようにしていると到達できません。 なので、ローカルアクセスではプロキシを回避できるように設定しましょう。MacOSの場合はこんな感じでした。

 Eclipseには導入用のプラグインがありますので、Mavenと合わせて使うことで簡単にSpring Boot環境を構築できました。
もっとも、pom.xmlの罠とプロキシサーバーの罠には引っかかってしまいましたが……。
- 閲覧数 16132
 
    
コメントを追加