LoginSignup
0
0

More than 3 years have passed since last update.

Java + SpringBoot + Gradle + thymeleaf で 簡易DRUDアプリ作成 ( 1 )

Posted at

はじめに

エンジニアに転職してから1年半が経とうとしているのでそろそろ、JavaとSpringBootで基本的なアプリ開発ができるようにならないといけないと思い始めました。現在使用している参考書はSpring Boot 2 プログラミング入門です。まだ全て手を動かしながら実践できていませんが簡易的なアプリを作成するまではできたので纏めておきます。ところどころ自分オリジナルのコードも入れながら作成したので良い勉強になりました。何回かに分けて復習がてら書いていきたいと思います。

github: https://github.com/noydmt/myboot

まず使用したツールやFWの説明から。

Gradle

Groovyによるビルドツール。
ビルドの情報や処理はGroovyで記述されている。Groovyとはプログラミング言語の一種でJavaを踏襲した文法で書くことができ、アプリも作れる。使用用途としてはGradleの記述以外にも本格的なアプリ開発の前のプロトタイプを作るときに用いられることが多い。
mavenと違い、pom.xmlは使用せず、プロジェクトの中にbuild.gradleファイルを置いて環境を管理する。
STSでプロジェクト作成を行うときは予め、gradle専用のプラグインツールをインストールしておく必要があり、STSで始めることが多いと思われるのでヘルプ=>Eclipseマーケットプレイス=>「Buildship」で検索=>Buildship gradle integrationをインストールすることでgradleプロジェクトを作成可能。

Thymeleaf

Java用に作られたテンプレートライブラリ。SpringBootにデフォルトで組み込まれている為、特にライブラリ等をインストールする必要はなし。JSPと違ってHTMLに影響を及ぼさないth${}などを用いて画面を表示することが可能。正直個人的な感想では今更、テンプレートエンジンを学ぶ旨味もそこまでないような気がする。

SpringBoot

Springフレームワークを基にさらに拡張されたJavaフレームワーク。railsライクに高速開発できることが強み。
Spring framework同様にDIが兼ね備えられており、わざわざ依存クラス内で使いたいクラスのインスタンスを生成する必要がない。AOPについては調べたけどよくわからない。

続いては実際にアプリ開発で使用した環境を紹介していきます。

build.gradle

build.gradle

plugins {
    id 'org.springframework.boot' version '2.3.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group = 'com.gradle.springboot'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    compile('org.hsqldb:hsqldb')
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

中身をざっと見てみるとpluginsrepositoriesdependenciesがこのファイルの構成要素になっており、pluginsではJavaspringBootdependencyなどの使用言語や使うフレームワーク、管理ツール、バージョンなど管理されている。
バージョンによって使える機能が限られることがあるので注意。
とは言いても個人の開発者がよりいじる可能性があるのはdependenciesである。
このdependenciesではどんなライブラリを使いたいか予め記述するだけでビルド時に勝手にダウンロードをしてくれる。
build.gradleを使わないと使いたいライブラリがあった場合、のちに外部からjarファイルをダウンロードしてクラスパスを通さないと使えなかったがgradleはそんな手間を掛けずにライブラリを使用することができるのだ。

今回私が使用したライブラリは下記になる。
・SpringBoot
・thymeleaf
・HSQLDB
・JPA

HSQLDBはJavaアプリケーション内部にDBを内蔵することを可能にするもので本来のサーバー上でなくメモリ上にデータベースを保管することができる。開発段階のテスト用データベースとして使用されることが多い。メモリ上に保管する為、揮発性を持ち、一度保管したレコードはアプリケーションを再起動すると消えてしまう。

JPAとはエンティティクラスを利用してRDBのテーブル操作をもっと簡易的に実現できるORマッパー。

次回に続く。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0