Help us understand the problem. What is going on with this article?

STSとSpringBootとGradleでHelloworld

STSでSpringBootプロジェクトを作成、HelloWorldの表示まで。

いざプロジェクト作ってみたはいいけどいっぱいファイルある...
どれいじったらいいかわからん..
けどとりあえず動かしてみたい!!!って方(そんな方ぼくの他にいますか?)向けです。

環境構築除けばHelloWorldまで10分~15分くらい(目安)

環境構築

STSのインストール

以下のサイトを参考にしてみてください。
・STS(spring-tool-suite)インストール

STSをインストールしたらGradleのプラグインを入れよう

STSはGradleが標準搭載されていないので、Gradleのプラグインを入れましょう。
まずSTSを起動します。
画面上部から<Help>→<Eclipse Marketplace...>でbuildshipと検索します。
一番上に出てくるBuildship Gradle Integrationをインストールしましょう。
スクリーンショット 2019-10-21 23.43.30.png

いざプロジェクトの作成

STSを起動しましょう。
画面上部から、<File>→<New>→<Spring Starter Project>を選択。
以下のように設定したらnext。
スクリーンショット 2019-10-21 23.53.07.png
次のような設定画面が現れますが、今回はFrequently Usedにすべてチェックを入れてFinish。
(今回はHelloWorldの表示のみですが、データベースを用いることのほうが多いと思われるのでMySQL Driver等にもチェックを入れています。)
スクリーンショット 2019-10-21 23.58.33.png

プロジェクトの実行(この段階ではまだエラーが出ます)

Package Explorerでプロジェクトのフォルダ(Hello)を右クリック、<Run As>→<Spring Boot App>で実行し、Consoleを確認。以下のようになります。
スクリーンショット 2019-10-22 0.08.24.png
classパスを通せと言われますが、今回はデータベースを用いるわけではなくwebの実装がとりあえずできれば良いので別の方法でエラーを回避します。

エラーの回避

src/main/java内のHelloApplication.javaは初期では以下のようになっています。

HelloApplication.java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

}

これに下記を付け加え、

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })

以下のようにすればOKです。
(@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })のアノテーションを書き込めば自動でimportしてくれます。)

HelloApplication.java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
public class HelloApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

}

詳しく知りたい方は以下のサイトを参照してください。
・spring-bootの起動エラー(dbアクセスに失敗か)

こんどこそプロジェクトの実行(再)

コンソールに以下のように表示されれば成功です。
スクリーンショット 2019-10-22 0.23.39.png

HelloWorldしてみる

Controllerクラスの用意

HelloApplication.javaと同じフォルダにHelloController.javaを作成します。
Package Explorerからsrc/main/javaのフォルダを右クリックしてNewからclassを選択し、以下のように設定すればOK.
スクリーンショット 2019-10-22 0.40.56.png
以下のようなファイルができているはずなので

HelloController.java
package com.example.demo;

public class HelloController {

}

以下のように編集します。

HelloController.java
package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "index";
    }
}

index.html(テンプレートファイルの作成)

HelloController.javaによって呼び出されるindex.javaを用意します。
Package Explorerからsrc/main/resources内のtemplatesを右クリック。
NewからOthers...を選択、WebからHTML Fileを選択し、next。
File nameをindex.htmlとし、Finishで作成完了。
作成したindex.htmlを以下のように編集してあげます。

index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type"
    content="text/html; "charset="UTF-8">
    <title>STSでHello World</title>
</head>
<body>
Hello STS!
</body>
</html>

index.htmlにアクセスしよう(Helloworldしよう)

http://localhost:8080
にアクセスして以下のように表示されれば成功です。
スクリーンショット 2019-10-22 1.02.52.png

以上です。
近いうちに今回扱わなかったデータベース周りをいじってみようと思うので、
またそこらへんについてかけることがあれば書こうと思います。

なにか普通でない点があればコメントいただけると嬉しいです。

読んでくださってありがとうございました。

参考図書

・Spring Boot 2 プログラミング入門(Chapter4まで)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした