Gradle+SpringBoot+MySQLの構成でWebアプリを作成するときの下準備を雑に記録
Gradle+SpringBoot+MySQLでWebアプリを作る際、最初の手順がいつも忘れがちなので備忘録として記録する。
1.プロジェクトの作成
・[ファイル]→[新規]→[Gradleプロジェクト]で「新規 Gradleプロジェクト」を開く
・[プロジェクト名]は任意の名前を入力。ここではDemoAppとする。「完了」をクリック。
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カラムに登録されているデータが表示されていることを確認。