林新与DropWizard和有这种情况:Dropwizard如何配置数据源?
我们有,现在将被分成3个部分的web应用程序:
- 核心:先后所有的商业智能,
- API:将一个dropwizard项目,将调用核心方法,clases等,
- 和客户端:实际上会有几个客户端; web,iphone,android等
我试着先用dropwizard创建一个小项目,然后调用核心的一些小方法。示例如果调用:localhost:8080/NewApi/getUserName?id = 12345;
对我的代码是这样的:
@GET
public String getUser(@Auth User user, @QueryParam("id") Optional<String> id) {
String userName = net.newapp.core.data.User.getUserName(id);
return userName;
}
但是我一直没能正确配置数据库。我已经阅读了dropwizard上的JDBI教程,但是这些示例建议使用DAO和JDBI SQL API,但我已经在核心上有了我需要的查询,我不想将该工作交给Dropwizard。
要测试内核是否与旧项目正确分离,我使用jetty创建了一个小型webapp并配置了一个简单的jndi数据源,并将该内核用作简单的库并且工作得很好,并且由于Dropwizard使用了Jetty I我可以在Dropwizard项目中配置它,但是从我一直在阅读的帖子看来,我无法做到这一点,所以我的问题是,我如何配置我的核心可以使用的简单数据源?
在此先感谢
嗨,你的核心使用哪种数据库框架?我在我的核心应用程序中使用hibernate有类似的问题,最后我做的是在API上创建一个hibernate包(https://dropwizard.github.io/dropwizard/manual/hibernate.html),并发送' SessionFactory'到核心'hibernateBundle.getSessionFactory()'。 – Carlos
嗨Carlos,核心我们没有使用任何数据库框架,只是一个普通的javax.sql.DataSource。 – user2171127
也许是一个长镜头,但为什么不尝试:使用DataSourceFactory字段创建一个配置类,如链接中的一个。然后在你的run方法中执行'ManagedDataSource a = configuration.getDataSourceFactory()。build(new MetricRegistry(),“Database metrics”);'得到一个ManagedDataSource(实现javax.sql.DataSource),然后在你的核心中使用Datasource项目。 – Carlos