5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Spring Frameworkを一から勉強する記録

Last updated at Posted at 2019-05-16

概要

Spring Frameworkについての勉強記録。
基本は初心者のためのSpring Framework入門を見ながら環境構築〜簡単なプロジェクトの作成を行っていく。
本記事では上記サイトを読んでいてわからないところや躓いたところを中心に書いていく。

環境

2019年5月15日現在の最新バージョンだと思う。

  • macOS Mojave バージョン10.14.4
  • Spring Framework 4.1.7.RELEASE(※最新ではない
  • Spring Tool Suite 4 バージョン4.2.1
  • Apache Maven 3.6.1
  • Java SE Development Kit 8u211

1. Springプロジェクトの作成

さっそく「Mavenによるプロジェクト作成」と書いてあるがMavenすらインストールしていないのでまずはApache Mavenをインストールする。

Apache Mavenのインストール

Apache Mavenのダウンロード

Apache Mavenから最新版のApache Mavenをダウンロードする。
Macなのでtar.gz形式のバイナリをダウンロード。
スクリーンショット 2019-05-16 9.58.00.png
ダウンロードした圧縮ファイルを適当なディレクトリに展開する。

システムパスの設定

.bash_profileexport PATH=$PATH:(DirectoryName)/maven/binを追記。

バージョン確認

以下のコマンドを実行する。バージョンが表示されれば正常にインストール完了。

$ mvn -version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T04:00:29+09:00)
Maven home: (DirectoryName)/maven
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.4", arch: "x86_64", family: "mac"

Spring Frameworkのインストール

Apache MavenがインストールできたらmvnコマンドでSpring Frameworkをインストールする。

pom.xmlにSpringのコアライブラリを追記するところで、

なお、今回は必要最小限に内容を絞っているため、JUnitのライブラリをはずしてあります。その関係で、「src」フォルダ内にあるフォルダは削除しておいてください。(JUnitがないので、ユニットテストのソースコードファイルがビルドできなくなるため、残しておくとビルドエラーになります)

と書いてあるが削除してしまうと後の動作確認ができなくなるので削除しない。pom.xmlの記述も残しておく。

Springのコアライブラリがインストールでき動作確認をするところで

これで、必要なライブラリなどをダウンロードし、プロジェクトをビルドしてJarファイルを作成します。「target」フォルダというものが作成されるので、この中を見てみましょう。すると、「MySpringApp-0.0.1-SNAPSHOT.jar」というファイルが作成されているはずです。これがビルドされたJarファイルです。

では、これを実行してみましょう。コマンドラインから「cd target」を実行して「target」フォルダ内に移動し、以下のように実行をします。

java -classpath .;MySpringApp-0.0.1-SNAPSHOT.jar com.tuyano.libro.App

クラスパスにMySpringApp-0.0.1-SNAPSHOT.jarを指定して、com.tuyano.libro.Appを実行します。これで、Appクラスのmainメソッドが実行され、「Hello World!」とテキストが表示されます。

と書いてあるがjarファイル名が間違っている。正しいjarファイル名はMySpringApp-1.0-SNAPSHOT.jar
このjarファイル名はSpring Frameworkのインストール時に指定できる。
コマンドのjarファイル名の前の.;も私の環境では不要だった(つけるとコマンドエラーになる)。
またpom.xmlにSpringのコアライブラリを追記するところでJUnitの記述とsrcフォルダを削除してしまうとこの動作確認が行えない。

STS4にプロジェクトをインポート

mvnコマンドで作成したプロジェクトをSTS4にインポートする。
STS4を起動するとJDKがない旨のエラーメッセージが表示されるのでJDKをインストールする。

JDKのインストール

Java SE Development Kitから最新版のJDKをダウンロード(要Oracleアカウント)。
スクリーンショット 2019-05-16 10.34.53.png
ダウンロードしたdmgをマウントしパッケージを実行する。ウィザードに従って進めていきインストール完了。

STS4を起動しメニューから[File] - [Import]を選択する。
スクリーンショット 2019-05-16 10.42.51.png
Maven - Existing Maven Projectsを選択し次へ。
スクリーンショット 2019-05-16 10.46.36.png
作成したMySpringAppを開くとProjectsにpom.xmlが表示されるので選択されていることを確認し完了。

2. Dependency Injection(DI)とBean

順番に作成・実行していく。特にわからないところや躓くようなところはなかった。

3. アノテーションによるDIの実装

コンポーネントの作成のところで、

これでコンポーネントは完成ですが、実はもう1つだけやっておくことがあります。Bean設定クラス(SampleBeanConfig)の宣言の手前に、以下のアノテーションを追加して下さい。

@ComponentScan

既に@Configurationアノテーションが付けられていますから、その上か下に追加すればいいでしょう。

と書いてあるがただ@ComponentScanを追記しただけではエラーになる。
@ComponentScanに加えてimport org.springframework.context.annotation.ComponentScan;を追加する。

4.AOPの利用

アノテーションでAOP設定クラスを作成するところで、App.javaにインポートが足りないのでimport org.springframework.context.annotation.AnnotationConfigApplicationContext;を追加する。

5. AspectJを利用する

Bean設定クラスを利用するところで、App.javaにインポートが足りないのでimport org.springframework.context.annotation.AnnotationConfigApplicationContext;を追加する。

6. Spring Data JPAの利用

Bean設定クラスを利用するところで、App.javaにインポートが足りないのでimport org.springframework.context.annotation.AnnotationConfigApplicationContext;を追加する。

7. CRUDの基本をマスターする

順番に作成・実行していく。特にわからないところや躓くようなところはなかった。

8. JpaRepositoryを利用する

順番に作成・実行していく。特にわからないところや躓くようなところはなかった。

5
8
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
5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?