2017-06-07 6 views
0

RESTEasyを使用したJAX-RSに基づく既存のMavenプロジェクトがあります。それは素晴らしい作品です! Ubuntu上で動作するTomcatに展開するWARを作成します。それは清潔で最新の基準に従います。 POMは単純です:既存のRESTEasy JAX-RSアプリケーションにSpring(Boot?)を追加する

... 
<packaging>war</packaging> 
... 
<dependencies> 
... 
    <dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>javax.ws.rs-api</artifactId> 
    <version>2.0.1</version> 
    <scope>provided</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jaxrs</artifactId> 
    <version>3.1.0.Final</version> 
    </dependency> 
    <dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-servlet-initializer</artifactId> 
    <version>3.1.0.Final</version> 
    </dependency> 
    <dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jackson2-provider</artifactId> 
    <version>3.1.0.Final</version> 
    </dependency> 
... 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.5.1</version> 
     <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>3.0.0</version> 
    </plugin> 
    </plugins> 
... 

私は最新のJava EEのアノテーションを使用していますので、私はどんなweb.xmlを必要としない:

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/") 
public class MyRESTApplication extends Application { 

    final FooResource fooResource = new FooResourceService(); 

... 

    @Override 
    public Set<Object> getSingletons() { 
    return ImmutableSet.of(fooResource); 
    } 
} 

これはすべての単純であり、それはとても素晴らしい働いています!今度は、プロファイルに基づいてFooResourceの実装を簡単に変更する方法が必要です。つまり、私のシングルトンを配線してください。それが春が来る場所です。 Spring BootはSpringをもっと素晴らしいものにしてくれると言われています。何にでも使うことができ、システムの健全性をリアルタイムで得ることができるアクチュエータを提供します。

残念なことに、すべてのSpring Bootの書籍とチュートリアルは、クイックスタートアプリケーションから始めると思います。しかし私はすでに素晴らしい、単純なアプリケーションを持っています。

  • プロファイルに基づいて、Spring経由で外部設定ファイル(注釈ではない)からアプリケーションの配線を取得します。
  • 春のブートから得られる他の何かを得るには、明らかに素晴らしいですし、私のアプリケーションを完全に変えるでしょう。

この小さなJAX-RSアプリケーションにSpring(またはSpring Boot)を追加するにはどうすればよいですか?

答えて

0

シングルトンスプリングビーンを作成しました。それをServiceStartupClassという名前にして、すべてのJAX-RSサービスを登録します。ここで

いくつかのコード私達は私達のサービスを開始する方法スニペット:

import javax.ws.rs.ApplicationPath; 

import org.glassfish.jersey.server.ResourceConfig; 

@Component 
@ApplicationPath("/") 
public class ServiceStartupClass extends ResourceConfig { 

    @PostConstruct 
    public void startup() { 
     register(FooResource.class); 
     ... 
    } 
} 

何か、さらにヘルプが必要な場合、私は

をお知らせ
関連する問題