没有webserver的Spring数据自动装配

时间:2016-06-24 10:17:03

标签: java spring spring-boot spring-data autowired

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

我有一个存储库界面:

post

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

但是我现在想在没有所有网络服务器后端内容的简单应用程序/测试中使用它。

但是,如果我定义了以下测试,则存储库接口无法自动连接到:

addData(data) {
    let _body = JSON.stringify(data);
    let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});

    let url = 'http://localhost:8080/obj/addData';

    console.log("test");

    return this._http.post(url, _body, { headers })
        .map((res:Response) => {
            console.log(res);
            return res.json();
        });
}

我找到了一些接近的解决方法,但是如果可能的话,我想在不同服务之间共享我的Repository接口,这些解决方法会阻止这些接口。

所以我的问题是:有没有办法将MongoRepository接口自动装入我的应用程序,其中生成所有数据库查询代码,但不是所有其他我不需要的东西,如webserver / servlet代码?

1 个答案:

答案 0 :(得分: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());
        }
    }