我正在尝试了解如何最好地添加 Jest to Play 之类的内容。
在 Play 的 2.5.x 依赖注入文档中,他们展示了如何添加单例,然后可以在需要时通过构造函数注入进行注入。
虽然这对我编写的类非常有意义,但我并不真正了解如何注入像 Jest 这样的东西,它是通过工厂实例化的:
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder("http://localhost:9200")
.multiThreaded(true)
//Per default this implementation will create no more than 2 concurrent connections per given route
.defaultMaxTotalConnectionPerRoute(<YOUR_DESIRED_LEVEL_OF_CONCURRENCY_PER_ROUTE>)
// and no more 20 connections in total
.maxTotalConnection(<YOUR_DESIRED_LEVEL_OF_CONCURRENCY_TOTAL>)
.build());
JestClient client = factory.getObject();
在我的控制器中,我应该如何正确注入 Jest?我是否创建一个 jest 工厂包装器,然后在构造函数调用中getObject()
?这似乎根本不是一个理想的解决方案。
JestFactoryWrapper.java
@Singleton
class JestFactoryWrapper {
private JestFactory jestFactory;
JestFactoryWrapper() {
this.jestFactory = ...
}
public JestFactory getObject() {
return this.jestFactory.getObject()
}
}
ApiController.java
@Inject
ApiController(JestFactoryWrapper jestFactory) {
this.jestClient = factory.getObject();
}