新到谷歌古冰。 我愿利用这一方法处理我正在开发的三个组成部分的所有IoC和AOP方法拦截:
WidgetClient
- a Swing appWidgetServer
- a small EAR that the client will connect to/communicate withWidgetShared
- a "commons" JAR that contains common classes used by both client and server
我在有些地方发出明确呼吁,如:
public static void main(String[] args) {
initGuiceInjectors();
}
private static initGuiceInjectors() {
Guice.createInjector(mySwingAppModule);
}
<代码>mySwingAppModule将界定对Swaing apps Dependencies的所有约束力。 我将在国际航空服务器中做一些非常相似的事情。
关于<代码>共享植被代码>的图书馆,I m choking,因为校正没有一个单一的切入点:它只是一个包件、班级、接口和垫子,客户和服务器将全部使用。
因此,我的第一个问题:,在我援引<条码>时,请上
这个问题突显了第二个(相似)问题,因此我也选择在这里讨论这个问题。
我阅读了Guices的“最佳做法”,绝大多数共识似乎是(在适用的情况下)在一揽子一级保持<代码>Module 执行。 因此,每一揽子方案都将有一个<代码>模块的混合物,其中界定了所有类型的约束力。 这与单一单一单一语言的<代码>Module相比有所改进,该编码界定了整个附件的约束力。
因此,上述法典(Guice.create Injector(mySwingAppModule)
实际上是而不是,我的法典最终将照搬(sorry Iude!”)。
我的第二个问题是:,什么是创造多种注射器的“最佳做法”?。
见<代码>createInjector(模块......)可采用varargModule
。 因此,在我看来,如果我接受“1-module-per- Pack”最佳做法的话,那么,在某个时候,我必须制定这样的守则:
Guice.creatorInjector(package1Module, package2Module, package3Module,
package4Module, package5Module, package6Module, ..., packageNModule);
或如上:
Guice.createInjector(package1Module);
Guice.createInjector(package2Module);
Guice.createInjector(package3Module);
...
Guice.createInjector(packageNModule);
这两点都确实是新生! 是否有更好的办法实现这一目标?
提前感谢!