親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

IntelliJにSpring Frameworkをセットアップ


Spring Frameworkをローカル環境でセットアップ

以下のバージョンでSpring Frameworkをローカル環境で動かせるようにしました。
Java 1.8
Spring Framework 4.3.5
Maven 3.3.9

Maven(メイバン)は環境構築の段階ではビルドツールとして認識してください。
POMに定義された情報にアクセスし、各々のプロジェクトで開発、使用しているライブラリを自動でインストールします。
似たようなツールにGradleがありますが、Mavenはxml形式、Gladleはドメイン固有言語(DSL)を使用しているという特徴があります。
(詳細は別の機会にしますが、いわゆる設定ファイルかスクリプトの違いですね)
Spring Frameworkの公式ページでも、MavenかGradleを使用することが推奨されています。

更に蛇足ですが、Mavenはプラグイン拡張により様々な使い方ができます。
ソースコードのコンパイル、テスト、Javadoc生成、テストレポート生成、プロジェクトサイト生成、JAR生成、サーバへのデプロイ、WAR, EARファイル生成などなど...

Mavenのインストール

Intellijを起動し、「Create New Project」を選択してください。
プロジェクトの言語として「Maven」を選択します。

f:id:tomotomo1129:20180603181727j:plain

クリックすると「GroudId」と「ArtifactId」を入力する画面になります。

f:id:tomotomo1129:20180603181756j:plain

それぞれの設定値ですが、以下を参考にしたところ、
2. Maven 入門 (2) | TECHSCORE(テックスコア)

groupId:プロジェクトを一意に識別する名前。プロジェクトのルートパッケージ名を指定するのが一般的。
artifactId:プロジェクトの成果物の名前。 作成する JAR や WAR, EAR ファイルなどの名前に使用される。

とあります。
プロジェクトの事情に合わせてここを入力してください。

入力するとプロジェクトが作成されます。

f:id:tomotomo1129:20180603181828j:plain


pom.xmlにSpringの依存関係を追加

pom.xmlの内容を以下のように書き変えてください。
Spring Frameworkはバージョン4を使用するものとします。

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>test.group</groupId>
  <artifactId>test</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>test</name>
  <url>http://maven.apache.org</url>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <!-- ここから -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <!-- ここまで -->
  </dependencies>
</project>

次にプロジェクトで右クリックし、「Maven」->「Reimport」と押下し、

f:id:tomotomo1129:20180603181850j:plain

以下のようにライブラリが追加されてば大丈夫です。

f:id:tomotomo1129:20180603181915j:plain

ここまで設定しておきながら言うのもあれですが、Spring Frameworkは設定項目が多いために管理が大変です。
そのような煩雑さを解消してくれるフレームワークとしてSpring Bootがあるので、私はそちらの方をおすすめします。


Spring Boot 2 プログラミング入門

Spring Boot 2 プログラミング入門

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

Spring Boot プログラミング入門

Spring Boot プログラミング入門