GWT:通过 Gin 进行 DI 与 GWT 延迟绑定
我是 GWT 的新手,但我对依赖注入并不陌生。
我正在寻找 DI via Gin 和 GWT 延迟绑定之间的一些具体区别。我过去曾使用 DI 通过注入依赖项来解耦我的应用程序,并且延迟绑定似乎也能做到这一点,只是以更明确的方式,并且更适合浏览器兼容性。
主要区别是什么?我是否需要选择其中之一,或者它们是互补的。
我们正在构建一个新的应用程序,我们希望这个基础是坚实的。
I'm new to GWT, but I'm not new to Dependency Injection.
I'm looking for some concrete differences between DI via Gin and GWT Deferred Binding. I've used DI in the past to de-couple my app by injecting dependencies, and it seems that Deferred Binding does that also, just in a more explicit way, and geared more toward browser compatibility.
What are the key differences, and do I need to choose one over the other, or are they complimentary.
We're building a new app and we want this foundation to be solid.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Gin 使用延迟绑定以配置应用程序的方式创建所有实例。因此,您可以使用延迟绑定来完成这项工作。
但:
使用 Gin,您可以配置实例是单例还是原型。如果您想使用延迟绑定来做到这一点,您必须编写更多代码。
DI 注释更为人所知,每个了解 DI 的人都知道 @Inject。这使得代码的可读性更好。
延迟绑定仅在 GWT 中有效,如果您使用延迟绑定来连接对象,则在 jvm 中直接快速运行单元测试时会遇到问题。
如果您使用 Gin,则可以使用 Guice 或手动连接对象,以便在 jvm 中测试代码。
我认为,这些是Gin的主要优点。
Gin uses Deferred Binding to create all instances in that way the app is configured. So you can use Deferred Binding to do the job.
But:
With Gin you can configure if an instance should be a singleton or a prototyp. If you want to do this with Deferred Binding you have to write more code.
The DI Annotation are better known and every one knowing DI knows about @Inject. This makes the code better readable.
Deferred Binding does only work in GWT and if you use Deferred Binding to wire you objectes you have problems to run unit tests directly and fast in the jvm.
If you use Gin you can use Guice or wire you objects by hand in order to test your code in the jvm.
I think, these are the main advantages of Gin.