Gradle+SpringBoot+MySQLの構成でWebアプリを作成するときの下準備を雑に記録

Gradle+SpringBoot+MySQLでWebアプリを作る際、最初の手順がいつも忘れがちなので備忘録として記録する。

使うIDEEclipse

1.プロジェクトの作成

・[ファイル]→[新規]→[Gradleプロジェクト]で「新規 Gradleプロジェクト」を開く

・[プロジェクト名]は任意の名前を入力。ここではDemoAppとする。「完了」をクリック。 f:id:y_shimabukuro:20180107130852p:plain

2.build.gradleの編集 ポイントは、あとからElasticbeanstalkでwarをデプロイしたいのでwarを作成するようにしたところ。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.6.RELEASE'
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework.boot:spring-boot-devtools'
    compile 'org.springframework.boot:spring-boot-starter-web'
    compile 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile 'org.springframework.boot:spring-boot-starter-thymeleaf'

    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
    compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3'
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'
    compileOnly 'org.projectlombok:lombok:1.16.18'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

}

configurations {
    providedRuntime
}

3.Applicationクラスの作成 ・「src/main/java」の中に任意のパッケージを作成。ここでは「demoApp」で作成。 ・「demoApp」の中にDemoApplication.javaを作成。 ・クラスに「@SpringBootApplication」を指定。 ・起動時に設定ファイルを読み込ませるため「SpringBootServletInitializer」を継承し、「SpringApplicationBuilder」をオーバーライド。 ・mainメソッドでSpringApplication.runを実行。

package demoApp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {

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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }
}

5.EntityクラスとRepositoryクラスを作成 ・接続先DBの扱いたいテーブルに対応するEntityクラスとRepositoryクラスを作成。 ・ここではdemo_mstというテーブルに対応させる「DemoMstEntity」「DemoMstEntityPK」「DemoRepository」を作成。

6.コントローラーを作成 ・「demoApp」パッケージの中にWebController.javaを作成。 ・demo_mstからデータを取得して適当に表示するような処理を実装。

@RestController
public class WebController {

    @Autowired
    DemoRepository testRep;

    @RequestMapping("/")
    public String hello() {

        List<DemoMstEntity> demoMstList = testRep.findAll();

        DemoMstEntity dm = new DemoMstEntity();
        if (demoMstList != null && demoMstList.size() > 0) {
            dm = demoMstList.get(0);

            return "DBから取得したデータは " + dm.getText() + " です";
        } else {

            return ”DBから取得したデータはありません。”
        }
    }
}

7.application.ymlにDB接続情報を記載 ・「src/main/resource」の中にapplication.ymlを作成し、MySQL接続情報を記載

8.デバッグモードで起動し、demo_mstのtextカラムに登録されているデータが表示されていることを確認。