--- title: SpringBoot 1.2でJersery (JAX-RS)を使う tags: ["JAX-RS", "Java", "Jersey", "Spring", "Spring Boot"] categories: ["Programming", "Java", "org", "springframework", "boot"] date: 2014-10-11T11:50:52Z updated: 2014-10-11T11:50:52Z --- [Spring Boot 1.2.M2からJerseryサポートが含まれた](http://docs.spring.io/spring-boot/docs/1.2.0.M2/reference/htmlsingle/#boot-features-jersey)ので使ってみました。 基本的には、pom.xmlに以下のように`spring-boot-starter-jersey`を依存関係に追加するだけ。(当然GradleでもOK) いままでSpring MVCで開発するときに指定していた`spring-boot-starter-web`の代替にすればOKです。 org.springframework.boot spring-boot-starter-parent 1.2.0.M2 org.springframework.boot spring-boot-starter-jersey org.springframework.boot spring-boot-maven-plugin spring-milestones Spring Milestones http://repo.spring.io/milestone false spring-milestones Spring Milestones http://repo.spring.io/milestone false ### エントリポイント ``` java package com.example; import org.glassfish.jersey.server.ResourceConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; @EnableAutoConfiguration @ComponentScan public class App { @Component static class JerseryConfig extends ResourceConfig { public JerseryConfig() { packages(true, "com.example"); } } public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` Jerseyの設定が必要っぽいです。 ### リソースクラス ``` java package com.example; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.ws.rs.GET; import javax.ws.rs.Path; @Component @Path("hello") public class Hello { @Value("${hello.name:World}") String name; @GET public String hello() { return "Hello " + name + "!"; } } ``` `@Component`でSpringの管理対象にすると諸々DIできるようになりました。ここでは`@Value`を使う例を挙げました。 あとは`App`を実行するだけ。`mvn package`で実行可能jarもできます。 「Spring Bootに興味があっても、Sprign MVCはちょっと・・・」って方に是非!って感じですね。 JAX-RSを使ってもSpring Bootのメリットを享受できます。 (Dropwizardはもはやオワコンなのでは・・・) APサーバーをデフォルトのTomcatからJettyに変え、組み込みサーバーを使ったREST APIのテストサンプル付きの検証アプリを[Github](https://github.com/making/hello-spring-boot-jersey)に置いておきました。