【Spring Boot + Angular + MySQLでWebアプリ作成】 SpringBoot編①

Spring Bootを使用してバックエンドのプログラムを作成します。

##ワークスペース作成

まずは適当な場所にワークスペース（作業フォルダ）を作成します。
今回はDocumentsにsampleWorkspaceフォルダを作成しました。

##Eclipse起動

pleiadesを解凍したフォルダまで移動し、eclipse.exeをダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/1e8ce995-3c66-4952-5542-f69573b54095.png)

ワークスペースを聞かれるので、先ほど作成したフォルダを指定して起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/f88a1b10-eeab-7523-b2e3-7e22cb3d9351.png)


##Spring Bootプロジェクト作成
Eclipseが起動したら、ファイル→新規→プロジェクトを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/87b95892-1c1a-2784-ab7f-16047d508c0a.png)

Spring Boot→Springスターター・プロジェクト選択して次へ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/72ed1ce4-ac2c-9339-6524-4dccfc95a5dd.png)

Javaバージョンは8を選択して次へ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/53a7ccd4-ea9f-ff01-e42c-3fd869ffd9fc.png)

Spring Bootバージョンは2.4.1、WebのSpring Webにチェックして完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/59a5584f-ba7b-9b5a-3853-9473778c83a4.png)

プロジェクトが作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/c6f5d50b-0217-ea85-edbd-7f0cf8d8dcfa.png)

##Doma Toolsインストール

↓Doma公式より引用です
Daoメソッドを右クリックでSQLファイルに飛べるようになるので、インストールします。

>Doma Tools は Java ファイルと SQL ファイルの相互遷移を可能にするプラグインです。
>Doma の利用に必須ではありませんが、このプラグインを使用すると生産性が高まります。

ヘルプ→新規ソフトウェアのインストールを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/8ee4de74-3112-d283-5213-f9809cea7976.png)

作業対象に `http://dl.bintray.com/domaframework/eclipse/`と入力し完了をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/eee39041-ebfd-9391-5e33-88adb72ad9ac.png)


##依存ライブラリ追加

pom.xmlのdependencyに依存ライブラリを追記します。
追記後は以下のようになります。

```xml:pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.4.1</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

　　　　<!-- 追記 ここから -->
		<dependency>
			<groupId>org.seasar.doma.boot</groupId>
			<artifactId>doma-spring-boot-starter</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>org.seasar.doma</groupId>
			<artifactId>doma</artifactId>
			<version>2.19.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
　　　　 <!-- ここまで -->

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

```

##データベース接続設定
application.propertiesに以下を追記します。

```
spring.datasource.url=jdbc:mysql://localhost:3306/sampledb?characterEncoding=UTF-8&serverTimezone=JST
spring.datasource.username=root
spring.datasource.password=root
doma.dialect=mysql
```


##Doma設定

###注釈処理
プロジェクト→プロパティ→Javaコンパイラー→注釈処理

以下のようにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/0f9e9b1f-0f2c-2823-50b0-74957fc8bb2f.png)

###ファクトリーパス

以下のようにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/b98e316f-a693-a2ac-6353-990cca429ed2.png)

###外部Jar追加

外部Jarの追加をクリックして、domaのJarを追加します。
今回はdoma-2.19.2.jarを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/1fb661ac-2ee6-2cd4-51f1-9f34de6c7eae.png)

適用して閉じます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/b683613d-c2ab-2bbf-fbe5-e308c1143d0f.png)

ビルドを促されたらビルドします。

##アプリケーション実行

DemoApplication.javaの上で右クリック→実行→Spring Bootアプリケーションを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/e2cfb453-b443-813c-a63e-7df8b65c84f6.png)

コンソールに以下のようなログが出たらOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/0a488a2a-7458-6d25-2bf5-eadf03b55b77.png)

http://localhost:8080/ にアクセスすると以下のような画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425239/81053071-56df-42e7-7e1d-9208e3954723.png)

[【Spring Boot + Angular + MySQLでWebアプリ作成】 SpringBoot編②へ](https://qiita.com/k-yamada-neut/private/c55013af9a2e93f30d84)