2016-06-24 6 views
-1

私はSpring Bootを使い始めました。私はそれを使って(非ウェブベースの)サービスを書くためにそれを使うことができるかどうかを知りたいです。Webサーバーを使用しないSpringデータオートワイヤー

私は、リポジトリのインターフェースがあります。私は春のブートアプリケーションで@Autowiredを使用している場合は、私は私のデータベース上でCRUD操作を行うには、それを使用することができます

public interface OrderRepository extends MongoRepository<Order, String> 
{ 

} 

を。

しかし、私は今、単純なアプリケーション/テストですべてのWebサーバーバックエンドのものを使用しないで使用したいと思います。私は次のテストを定義した場合、リポジトリのインターフェースはにautowiredを取得するためには何もありません

は、しかし:

public class TestMongoInterface 
{ 
    @Autowired 
    private OrderRepository orderRepository; 
    @Test 
    public void canReadOrders() 
    { 
     List<Order> orders = orderRepository.findAll(); 
     for(Order o : orders) 
      System.out.println("found: "+o.toString()); 
    } 
} 

を私が近づくいくつかの回避策を発見したが、私はすべての可能で、私は私のリポジトリを共有したい場合これらの回避策が防止する異なるサービス間のインターフェース

私の質問は、アプリケーションにMongoRepositoryインターフェイスをautowireする方法はありますか?すべてのdbクエリコードが生成されますが、Webサーバー/サーブレットコードのようなものは必要ありません。

+0

なぜ機能しないのですか? Spring Boot!= web ... Web依存関係を含めないでください...それに関係なく動作します。スプリングブートアプリケーションのテストは、リファレンスガイドにはっきりと記載されています。 –

+0

あなたがhttp://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-applications([ドキュメント]をしようとしました)? – kryger

+0

問題はあまりにも多くのドキュメントで、どこから起動するのかわからないのですが、明らかに私はそのSpringブート== webと仮定するのは間違っていました。だから私はこれらのコンポーネントを追加しない方法を見つける必要がありますストリッピングの代わりに。私は、私はおそらくちょうどあなたが少し深く掘る私はまた、代わりに共通モジュールの自動設定と独自のスターターを書くことをお勧めすることができた場合は、適切な依存関係 –

答えて

1

私はJpaRepositoryを使用するとき、これをうまく使ってみてください。 autowiringせずには不可能です。

@Configuration 
    public class TestMongoInterface 
    { 
     @Autowired 
     private OrderRepository orderRepository; 
     @Autowired 
     public void canReadOrders() 
     { 
      List<Order> orders = orderRepository.findAll(); 
      for(Order o : orders) 
       System.out.println("found: "+o.toString()); 
     } 
    } 
関連する問題