我们正在考虑使用 JSR-330 javax.inject.* 注释而不是 com.google.inject.* 等价物。看起来 JSR-330 标准不包括我在 Guice 中喜欢的几个特性。
具体来说,我认为不支持 @Assisted 关键字。另外,@AssistedInject 呢?@Inject 可以放在多个构造函数上吗?
我有兴趣成为供应商中立,但不以方便功能为代价。有什么建议吗?
我们正在考虑使用 JSR-330 javax.inject.* 注释而不是 com.google.inject.* 等价物。看起来 JSR-330 标准不包括我在 Guice 中喜欢的几个特性。
具体来说,我认为不支持 @Assisted 关键字。另外,@AssistedInject 呢?@Inject 可以放在多个构造函数上吗?
我有兴趣成为供应商中立,但不以方便功能为代价。有什么建议吗?
@Assisted
仅 Guice。您可以将它与 JSR 330 一起使用@Inject
。如果您不想要 Guice 依赖项,请通过在代码中实现工厂接口来进行手动辅助注入。
在回答您的一个问题时:
@Inject 可以放在多个构造函数上吗?
来自javadoc
可注入构造函数使用 @Inject 注释并接受零个或多个依赖项作为参数。@Inject 每个类最多可以应用一个构造函数。
所以我认为答案是否定的。