Spring 没有网络服务器的数据自动装配

Spring data autowiring without webserver

我刚开始使用 Spring Boot 并且喜欢用它编写应用程序的简单性。我想知道是否以及如何使用它来编写(非基于 Web 的)服务。

我有一个存储库界面:

public interface OrderRepository extends MongoRepository<Order, String>
{

}

如果我在 Spring 引导应用程序中使用 @Autowired,我可以使用它对我的数据库执行 CRUD 操作。

但是我现在想在一个简单的 application/test 中使用它,而不需要所有网络服务器后端的东西。

但是,如果我定义以下测试,则存储库接口没有任何内容可以自动连接到:

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 接口自动连接到我的应用程序,其中会生成所有数据库查询代码,但不会生成我不需要的所有其他内容,例如 webserver/servlet 代码?

试试这个,当我使用 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());
        }
    }