Java 无Web服务器的Spring数据自动连接

Java 无Web服务器的Spring数据自动连接,java,spring,spring-boot,spring-data,autowired,Java,Spring,Spring Boot,Spring Data,Autowired,我刚开始使用SpringBoot,喜欢用它编写应用程序的简单性。我想知道是否以及如何使用它来编写(非基于web的)服务 我有一个存储库界面: public interface OrderRepository extends MongoRepository<Order, String> { } 公共接口OrderRepository扩展了MongoRepository { } 如果我在Spring引导应用程序中使用@Autowired,我可以使用它对数据库执行CRUD操作 然而,

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

我有一个存储库界面:

public interface OrderRepository extends MongoRepository<Order, String>
{

}
公共接口OrderRepository扩展了MongoRepository { } 如果我在Spring引导应用程序中使用@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());
    }
}
公共类TestMongoInterface
{
@自动连线
专用医嘱存储库医嘱存储库;
@试验
公共秩序
{
List orders=orderRepository.findAll();
对于(订单o:订单)
System.out.println(“找到:+o.toString());
}
}
我已经找到了一些解决办法,但如果可能的话,我希望在这些解决办法所阻止的不同服务之间共享我的存储库接口


因此,我的问题是:是否有一种方法可以将MongoRepository接口自动连接到我的应用程序,在该应用程序中生成所有db查询代码,但不生成所有其他我不需要的东西,如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());
        }
    }
@配置
公共类TestMongoInterface
{
@自动连线
专用医嘱存储库医嘱存储库;
@自动连线
公共秩序
{
List orders=orderRepository.findAll();
对于(订单o:订单)
System.out.println(“找到:+o.toString());
}
}

为什么这样不行?弹簧靴!=网状物只是不要包含web依赖项。。。不管怎样,它都会起作用。测试spring boot应用程序在它的参考指南中有非常清晰的文档记录。您尝试过吗?问题是文档太多,不知道从哪里开始,但显然我错误地认为spring boot==web。因此,我应该找到如何不添加这些组件,而不是剥离。我错过了spring boot starter web依赖项中的-web,我可能只需要找到适当的依赖项如果你再深入一点,我也可以鼓励你编写一个具有自动配置的starter,而不是一个普通模块。对于我们来说,这就像一个共享公共功能的魅力。例如,请参阅使用数据库和JPA的简单、非web Spring引导应用程序指南。