jersey
JerseyでSpring Bootを使用する
サーチ…
Spring BootとJerseyを使用した簡単なアプリケーション
SpringBootは、Springアプリケーションのためのブートストラップフレームワークです。 Jerseyとの統合もシームレスにサポートしています。これの利点の1つ(Jerseyユーザーの観点から)は、Springの広範なエコシステムにアクセスできることです。
開始するには、新しいスタンドアロン (非wepapp)Mavenプロジェクトを作成します。 webappも作成できますが、このガイドではスタンドアロンのアプリケーションを使用します。プロジェクトを作成したら、 pom.xml
以下を追加します
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2つの依存関係が必要です。 1つはジャージースプリングブートモジュール用で、もう1つは組み込みのTomcatサーバー用です。テストするアプリケーションを実行するために使用するプラグイン。
一度それを持っている、プロジェクトに次のクラスを追加します。
com/example
|
+-- GreetingApplication.class
+-- JerseyConfig.class
|
+ com/example/services
| |
| +-- GreetingService.class
| +-- NiceGreetingService.class
|
+ com/examples/resources
|
+-- GreetingResource.class
GreetingApplication.class
これはブートストラップクラスです(非常に単純です)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GreetingApplication {
public static void main(String[] args) {
SpringApplication.run(GreetingApplication.class, args);
}
}
JerseyConfig.class
これはJersey構成クラスです
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
@Component
@ApplicationPath("/api")
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
packages("com.example");
}
}
GreetingService.class
とNiceGreetingService.class
public interface GreetingService {
public String getGreeting(String name);
}
import org.springframework.stereotype.Component;
@Component
public class NiceGreetingService implements GreetingService {
@Override
public String getGreeting(String name) {
return "Hello " + name + "!";
}
}
GreetingResource
これは、SpringがGreetingService
を注入させるリソースクラスです。
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.service.GreetingService;
@Path("greeting")
public class GreetingResource {
private GreetingService greetingService;
@Autowired
public GreetingResource(GreetingService greetingService) {
this.greetingService = greetingService;
}
@GET
public String getGreeting(@QueryParam("name") String name) {
return this.greetingService.getGreeting(name);
}
}
以上です。これでアプリケーションを実行できます。ターミナルをつかみ、プロジェクトのルートから次のコマンドを実行します。
mvn spring-boot:run
アプリケーションの起動には数秒かかる場合があります。いくつかのロギングがあり、いくつかのSpring ASCIIアートが表示されます。その芸術の後では、それは約30行ほど、またはそれ以上の伐採でなければなりません。
15.784 seconds (JVM running for 38.056)
これでアプリが起動します。 cURLを使用する場合は、
curl -v 'http://localhost:8080/api/greeting?name=peeskillet'
Windowsの場合は、URLを二重引用符で囲みます。 cURLを使用していない場合は、ブラウザに入力してください。結果が表示されるはずです
Hello peeskillet!
最初のリクエストでリクエストに数秒かかることがあります。これは、アプリの起動時にJerseyが完全に読み込まれていないためです。これを変更するには、 application.properties
ファイルをsrc/main/resources
フォルダーに追加します。そのファイルに以下を追加します:
spring.jersey.servlet.load-on-startup=1