Java初心者がSpring Bootを使って簡単なWebアプリケーションを作ってみた
はじめに
- 色々な諸事情あって、Spring Bootのお勉強をしております。
- Java自体やサーブレット、JSPだとか昔過ぎて覚えておりません。なので初心者スタートとなります。
- 1つ1つのステップで確実に嵌りながら、計16時間ほどで簡単なSPAを作ることができました。
- デザインとかは特にあたっておりません。
実行環境
# | OS/ソフトウェア/ライブラリ | バージョン |
---|---|---|
1 | Mac OS X | EI Capitan |
2 | Java | 1.8.0_111 |
3 | Tomcat | 8.0.43 |
4 | MySQL | 5.6.38 |
開発環境
# | OS/ソフトウェア/ライブラリ | バージョン |
---|---|---|
1 | Eclipse | 4.5 Mars |
2 | Gradle | 4.4.1 |
アプリケーション環境
# | OS/ソフトウェア/ライブラリ | バージョン |
---|---|---|
1 | Spring Boot | 1.5.9 |
2 | JPA(Java Persistence API) | |
3 | Thymeleaf |
Homebrewから各種インストール
brewを更新
brew update && brew upgrade && brew cleanup
Java
インストール
brew cask install java
PATHの設定
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
Tomcat
インストール
brew install tomcat
Gradle
インストール
brew install gradle
Eclipseのインストール
Marsのダウンロード
brew update && brew upgrade && brew cleanup
brew cask install java
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
brew install tomcat
brew install gradle
Marsのダウンロード
※ Eclipse IDE for Java EE Developersを選択してください。
インストール
Eclipse.appを/Applications配下に置いてください。
各種プラグインダウンロード
日本語化プラグイン
http://mergedoc.osdn.jp/#pleiades.html
※ ページ下部のPleiades プラグイン・ダウンロードからダウンロードしてください。
JStyle
http://mergedoc.osdn.jp/#jstyle.html
日本語化
/Applications/Eclipse.app/Contents/Eclipse/plugins/以下に解凍したプラグインのjp.sourceforge.mergedoc.pleiadesディレクトリを配置してください。
/Applications/Eclipse.app/Contents/Eclipse/eclipse.iniを開いて書きを追記してください。
-Xverify:none
-javaagent:/Applications/Eclipse.app/Contents/Eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
JStyle
/Applications/Eclipse.app/Contents/Eclipse/plugins/以下に解凍したプラグインのjarを配置してください。
Ecelipseの初期セットアップ
起動後、画面左上部の環境設定を開きます。
- 「Java > コンパイラー」 からJavaのバージョンを1.8にする。
- 「Java > インストール済みのJRE」 からJava SE 8を追加する。
- 「一般 > JStyle」 の設定を調整する。
- 「一般 > Webブラウザ」 の設定をする。
- プロキシ設定が必要な場合、 「一般 > ネットワーク接続」の設定をする。
Tomcatの接続設定
起動後、画面左上部の環境設定から、 「サーバー > ランタイム環境」 を開きます。
- 追加から「Apache > Apache Tomcat v8.0」を選択し、次に進みます。
- 名前とTomcat インストール・ディレクトリーを入力します。ディレクトリは以下となります。
/usr/local/Cellar/[email protected]/8.0.43/libexec
SpringとGradleプラグインのインストール
STSのインストール
- 画面上部の「ヘルプ > Eclipseマーケットプレイス」を開きます。
- 検索窓にSTSと入力し、インストールします。
Gradleプラグインのインストール
- 画面上部の「ヘルプ > Eclipseマーケットプレイス」を開きます。
- 検索窓にGradleと入力し、インストールします。
Spring Bootプロジェクトの作成
- 画面上部の「ファイル > 新規 > Spring スターター・プロジェクトを作成します。ト」を開きます。
- プロジェクト名を入力し、下記にチェックをつけ、完了します。
- 画面上部の「ファイル > 新規 > Spring スターター・プロジェクトを作成します。ト」を開きます。
- プロジェクト名を入力し、下記にチェックをつけ、完了します。
Tomcatの起動ポートとデータベースの接続設定
- /プロジェクト名/src/main/resources/application.propertiesを編集します。
// Tomcatの起動ポート
server.port=18080
// データベースの接続設定
spring.datasource.url=jdbc:mysql://localhost:3306/{データベース名}
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
アプリケーションの作成
- 今回は、以下のような機能をつくってみました。
// Tomcatの起動ポート
server.port=18080
// データベースの接続設定
spring.datasource.url=jdbc:mysql://localhost:3306/{データベース名}
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- 今回は、以下のような機能をつくってみました。
# | 機能名 |
---|---|
1 | ユーザ情報の一覧表示 |
2 | ユーザ名とグループ名の部分一致検索 |
3 | ユーザ情報の表示 |
4 | ユーザ名の更新 |
- ユーザはグループといった属性を持たせて結合関係としています。
データベースとテーブルの作成
CREATE DATABASE {データベース名} DEFAULT CHARACTER SET utf8;
CREATE TABLE `groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
初期データの投入
INSERT INTO `groups` VALUES (1,'admin'),(2,'sales');
INSERT INTO `users` VALUES (1,1,'田中'),(2,2,'高橋'),(3,2,'鈴木');
実装
- ドメイン駆動(DDD)に習ってクラス構成を行いましたが、ところどころあまりよろしくないコードが含まれているかもしれませんがご了承ください。
- 実際のソースコードです。
ソースコード
実行
アプリケーションの実行
プロジェクトを選択し、右クリックから「実行 > Spring Boot アプリケーション」をクリックします。
デモ
まとめ
- JavaとかSpring Bootに嵌まるというよりは、JPAやThymeleafや他のライブラリのほうで嵌まることが多かったです。
- Gradle使いやすい。
- Entity周りは嵌りました。
- Eclipseでアプリケーションの実行や停止などのショートカットに設定しておくことをオススメします。
Author And Source
この問題について(Java初心者がSpring Bootを使って簡単なWebアプリケーションを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/neriai/items/72afe2400566fcb39001著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .