私は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サーバー/サーブレットコードのようなものは必要ありません。
なぜ機能しないのですか? Spring Boot!= web ... Web依存関係を含めないでください...それに関係なく動作します。スプリングブートアプリケーションのテストは、リファレンスガイドにはっきりと記載されています。 –
あなたがhttp://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-applications([ドキュメント]をしようとしました)? – kryger
問題はあまりにも多くのドキュメントで、どこから起動するのかわからないのですが、明らかに私はそのSpringブート== webと仮定するのは間違っていました。だから私はこれらのコンポーネントを追加しない方法を見つける必要がありますストリッピングの代わりに。私は、私はおそらくちょうどあなたが少し深く掘る私はまた、代わりに共通モジュールの自動設定と独自のスターターを書くことをお勧めすることができた場合は、適切な依存関係 –