2016-06-24 44 views
-1

我剛開始使用Spring Boot,並喜歡用它編寫應用程序的簡單性。我想知道它是否以及如何用它來編寫(基於web的)服務。沒有網絡服務器的彈簧數據自動裝配

我有一個倉庫接口:

public interface OrderRepository extends MongoRepository<Order, String> 
{ 

} 

如果我在春季啓動應用程序中使用@Autowired我可以用它做我的數據庫CRUD操作。

但是,我現在想用它在一個簡單的應用程序/測試沒有所有的web服務器後端的東西。

但是如果我定義了下面的測試庫接口有沒什麼可自動連接到:

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接口到我的應用程序,其中所有的數據庫查詢代碼生成,但不是所有其他的東西,我不需要像Web服務器/ servlet代碼?

+0

爲什麼不行? Spring Boot!= 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 boot == web。所以,而不是剝離我應該找到如何不添加這些組件。我錯過了-web中的spring-boot-starter-web依賴關係我可能只需要找到相應的依賴關係 –

回答

1

試試這個工作正常,當我使用JpaRepository。沒有自動裝配是不可能的。

@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()); 
     } 
    }