我已经设置了多个持久性单元的 guice,但我遇到的问题是我更喜欢有一个默认值,而不是必须显式声明一个或另一个。当我想要“另一个”时,我会明确要求它。当我想要默认的时,我会想做同样的事情,就好像我只有一个 PU。
我尝试仅在 PrivateModule 中安装 JpaPersistModule,但这并没有改变任何东西。如果我绑定到“默认”注释并尝试在没有“annotatedWith”分类器的情况下重新绑定,我会收到重新绑定错误。
这可能吗?我相信使用 CDI 中的等价物,我可以注入注入点来查看它并当场做出决定。我还没有在 guice 中找到等价物,但一定有。
就代码而言,这就是我所拥有的(但不想要):
@Inject
public SomethingService(@Primary Repository repository)
@Inject
public SomethingElseService(@Secondary Repository repository)
相反,我想要这个:
@Inject
public SomethingService(Repository repository)
@Inject
public SomethingElseService(@Secondary Repository repository)