Eclipse STSのSpringガイド
1概要
この記事では、https://spring.io/tools/sts[Eclipse Spring Tool Suite(STS)]IDEの便利な機能のいくつかを説明します。これらはhttp://docs.spring.io/spring/docsを開発する際に役立ちます。/current/spring-framework-reference/htmlsingle/[春のアプリケーション]。
最初に、Eclipseを使用してアプリケーションを構築する従来の方法と比較して、STSを使用する利点を説明します。
その後は、アプリケーションのブートストラップ方法、実行方法、依存関係の追加方法に焦点を当てます。最後に、アプリケーションの引数を追加して締めくくります。
2 STSの主な特長
STSは、Springアプリケーションの開発用にカスタマイズされたEclipseベースの開発環境です。
それはあなたのアプリケーションを実装し、デバッグし、実行しそして配備するためのすぐに使える環境を提供します。それはまたPivotal tcサーバー、Pivotal Cloud Foundry、Git、MavenそしてAspectJのための統合を含みます。 STSは、最新のEclipseリリースの上に追加として構築されています。
** 2.1. プロジェクト構成
STSは、ほとんどすべての最も一般的なJavaプロジェクト構造を理解しています。
設定ファイルを解析し、定義されたhttp://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-introduction[beans]に関する詳細情報、依存関係、使用されている名前空間さらに、特定のステレオタイプの概要を抽出します。
2.2. STSの機能概要
Eclipse STSはプロジェクトを検証し、アプリケーションに迅速な修正を提供します。たとえば、Spring Data JPAを使用している場合は、IDEを使用してクエリメソッド名を検証できます(これについては6章で詳しく説明します)。
STSはまた、すべてのBeanメソッドとそれらの相互関係についてグラフィカルに表示します。 STSに付属のグラフィカルエディタを、それぞれ
window
、
show view
、そして
Spring
の各メニューの下に表示されるビューで調べてみるとよいでしょう。
STSには、Springアプリケーションのみに限定されないその他の便利な機能もあります。読者はhttps://spring.io/tools/stsを見つけることができる機能の完全なリストを見ることをお勧めします。
3 Springアプリケーションの作成
単純なアプリケーションをブートストラップすることから始めましょう。 STSがないと、Springアプリケーションは通常http://start.spring.io/[Spring Initializer]Webサイトまたはhttp://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/を使って作成されます。 #cli-init[Spring Boot CLI]。これは、STSのダッシュボードから[Spring Starterプロジェクトの作成]をクリックすると簡単になります。
[New Spring Starter Project]画面では、デフォルトを使用するか独自の調整を行ってから次の画面に進みます。[Web]を選択して[完了]をクリックします。あなたの
pom.xml
はこのようになります。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<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>
</dependencies>
お使いのSpring Bootのバージョンは異なる場合がありますが、最新バージョンは常にhttps://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web[ここ]にあります。
4アプリケーションの実行
上記のアプリケーションは、プロジェクトを右クリックして[Run as
Spring Boot App
]を選択することで起動できます。 STSがなければ、ほとんどの場合、次のコマンドを使用してコマンドラインからアプリケーションを実行します。
$ mvn spring-boot:run
デフォルトでは、Springアプリケーションはポート8080で実行されているTomcatで起動されます。この時点では、アプリケーションはポート8080で起動し、まだコードを実装していないので基本的に他には何もしません。セクション8では、デフォルトのポートを変更する方法を説明します。
5ロギングとANSIコンソール
runコマンドを使用してIDEからプロジェクトを実行すると、コンソールにhttp://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-loggingという素敵な出力が表示されます。 html#ブート機能ロギング色分け出力[色分け]ログステートメント。オフにしたい場合は、
設定の実行
…に進み、
Spring Boot
タブのチェックボックス
Enable ANSI console output
を無効にします。あるいは、
application.properties
ファイルにプロパティ値を設定して無効にすることもできます。
spring.output.ansi.enabled=NEVER
アプリケーションログの設定の詳細については、http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.htmlを参照してください。
6. JPAクエリ名チェック
時にはデータアクセスレイヤを実装することは面倒な作業かもしれません。
単純なクエリを実現し、ページ付けを実行するためには、多くの定型コードを記述する必要があります。
Spring Data JPA
(JPA)は、このようなデータアクセス層の実装を大幅に促進することを目的としています。このセクションでは、JPAをSTSと組み合わせて使用することの利点について説明します。
はじめに、JPAの次の依存関係を以前に生成した
pom.xml
に追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
あなたは
version
が上記の宣言で指定されていないことに気づいたかもしれません。これは、依存関係が親の
pom.xml
から管理されるためです。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.6.RELEASE</version>
</parent>
JPAを機能させるには、エンティティマネージャとトランザクションマネージャを正しく定義する必要があります。しかし、Springはこれらを自動設定します。開発者に残された唯一のことは、実際のエンティティクラスを作成することです。これらのエンティティはエンティティマネージャによって管理され、エンティティマネージャはコンテナによって作成されます。たとえば、次のようにエンティティクラス
Foo
を作成しましょう。
@Entity
public class Foo implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String name;
//Standard getters and setters
}
コンテナーは、構成パッケージのルートから
@ Entity
というアノテーションが付いたすべてのクラスをスキャンします。次に、
Foo
エンティティ用のJPAリポジトリを作成します。
public interface FooRepository extends JpaRepository<Foo, Integer> {
public Foo findByNames(String name);
}
この時点で、IDEがこのクエリメソッドに例外を示すフラグを立てていることにすでに気付いているかもしれません。
Invalid derived query! No property names found for type Foo!
これは、JPAリポジトリのメソッド名に誤って「s」を書き込んだことが原因です。これを修正するには、次のように偽の「s」を削除します。
public Foo findByName(String name);
設定クラスで
@ EnableJpaRepositories
が使用されていないことに注意してください。
これは、コンテナの
AutoConfigration
がプロジェクト用にコンテナを事前登録するためです。
** 7. ジャータイプ検索
**
“ Jar Type Search”はhttp://docs.spring.io/sts/nan/v350/NewAndNoteworthy.html[STS 3.5.0]で導入された機能です。まだクラスパス上にないクラスに対して、プロジェクトでのコンテンツ支援の提案を提供します。 STSは、POMファイルに依存関係がまだクラスパスにない場合に、それらをPOMファイルに追加するのに役立ちます。
たとえば、
Foo
エンティティクラスに行を追加しましょう。この例が正しく動作するためには、まず
java.util.List
のインポート文がすでに存在することを確認してください。これでGoogle Guavaを次のように追加できます。
private List<String> strings = Lists//ctrl + SPACE to get code completion
IDEはクラスパスに追加する依存関係をいくつか提案します。
com.google.common.collectから依存関係を追加し、
returnキーを押して
Guava
から依存関係を追加します。 Guava jarが自動的に
pom.xml
ファイルに次のように追加されます。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
バージョンhttp://docs.spring.io/sts/nan/v380/NewAndNoteworthy.html[STS 3.8.0]の時点では、STSが
pom.xml.
に変更を加える前に確認ダイアログボックスを表示します。
8アプリケーション引数の追加
Springの他の強力な機能の1つは、いくつかの方法でアプリケーションに渡すことができる外部設定のサポートです。コマンドライン引数として、プロパティやYAMLファイルで、あるいはシステムプロパティとして指定されます。このセクションでは、STSを使用してアプリケーション開始引数として構成オプションを追加することに焦点を当てます。これは別のポートで起動するようにTomcatを設定することで説明されています。
デフォルト以外のTomcatポートでアプリケーションを実行するには、以下のコマンドを使用します。ここで、カスタムポートはコマンドライン引数として指定されます。
mvn spring-boot:run -Drun.arguments="--server.port=7070"
STSを使用するときは、
run
メニューに進みます。 Run Configurationsダイアログから
run configuration
…を選択し、左側のパネルから
Spring Boot App
を選択し、
demo – DemoApplication
を選択します(デフォルトプロジェクトを選択しなかった場合はこれは異なります)。
Program Arguments
ウィンドウのFrom
(x)= Arguments
タブタイプ
--server.port=7070
そして
run
。コンソールには、次のような出力が表示されます。
.
.
2016-07-06 13:51:40.999 INFO 8724 ---[ main]s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 7070 (http)
2016-07-06 13:51:41.006 INFO 8724 ---[ main]com.baeldung.boot.DemoApplication : Started DemoApplication in 6.245 seconds (JVM running for 7.34)
9結論
この記事では、STSでSpringプロジェクトを開発するための基本を説明しました。ここで紹介したことのいくつかは、STSでのアプリケーションの実行、Spring Data JPAの開発中のサポート、およびコマンドライン引数の使用です。ただし、STSには豊富な機能セットが用意されているため、開発中に使用できるその他の便利な機能が多数あります。
この記事の
完全な実装
はhttps://github.com/eugenp/tutorials/tree/master/spring-boot[githubプロジェクト]にあります。これはEclipseベースのプロジェクトなので、簡単に実行できます。そのままインポートして実行します。