- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
什么是 Spring Framework相当于FactoryModuleBuilder
, @AssistedInject
, 和 @Assisted
在 Google Guice ?换句话说,使用 Spring 创建其方法接受应用程序(而非容器)必须提供的参数的工厂对象的推荐方法是什么?
Spring 静态工厂方法与FactoryModuleBuilder
不同。 FactoryModuleBuilder
构建一个 Guice 模块,生成实现 Factory Method Pattern 的“工厂” .与 Spring 静态工厂方法不同,这些工厂对象的方法是实例方法,而不是静态方法。静态工厂方法的问题在于它是静态的并且没有实现接口(interface),因此不能用替代工厂实现来替换它。但是,不同的 FactoryModuleBuilder
实例可以构建实现相同接口(interface)的不同工厂。
最佳答案
Spring 没有与 Guice FactoryModuleBuilder
的等价物。最接近的等效项是 Spring @Configuration
类,它提供了一个实现工厂接口(interface)的工厂 bean,其方法接受来自应用程序的任意参数。 Spring 容器可以将依赖项注入(inject) @Configuration
对象,而该对象又可以提供给工厂构造函数。与 FactoryModuleBuilder
不同,Spring 方法会生成大量典型的工厂实现样板代码。
例子:
public class Vehicle {
}
public class Car extends Vehicle {
private final int numberOfPassengers;
public Car(int numberOfPassengers) {
this.numberOfPassengers = numberOfPassengers;
}
}
public interface VehicleFactory {
Vehicle createPassengerVehicle(int numberOfPassengers);
}
@Configuration
public class CarFactoryConfiguration {
@Bean
VehicleFactory carFactory() {
return new VehicleFactory() {
@Override
Vehicle createPassengerVehicle(int numberOfPassengers) {
return new Car(numberOfPassengers);
}
};
}
}
关于java - 与 Guice 中的 FactoryModuleBuilder、@AssistedInject 和 @Assisted 等效的 Spring 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29555705/
有人知道是否可以更改 VisualAssist X 存储其符号数据库的文件夹吗? 默认情况下它在 \VisualAssist 最佳答案 取决于 VA 和 Visual Studio 的版本。见 thi
有人知道google assistant SDK可以商用吗? 如果可用,我如何购买其许可证? 最佳答案 根据 Google Assistant SDK Terms of Service ,未经 Goo
使用本指南在我的 pi 上安装 Google 助手:https://developers.google.com/assistant/sdk/guides/library/python/embed/ru
我正在尝试使用元数据定义实体值之间的一些关系。 我已使用 Watson API v1 将元数据上传到实体值。当我通过相同的 API 列出实体时,我可以看到元数据。不过,我无法从 Watson Assi
QT4.8 你好,我正在使用 QProcess 模式连接到 QT-Assistent。 例如(来自QT文档) QProcess *process = new QProcess; QStringList
好的,我一直在我的 Windows 10 PC 上安装 Google 智能助理,但遇到了多个错误,最后一个错误我通过转到此处解决:Google Assistant Installation on Py
我只熟悉Watson Assistant因为我已经用它做了一些工作,但我从未使用过 Watson Assistant Solutions。 它是基于 Watson Assistant 的新 API 还
我有一个应用程序,它使用(完全用户友好的)系统范围键盘 Hook 来实现辅助功能。 当应用程序启动时,我检查是否选中了“启用辅助设备访问”设置,正如其他人在这里询问的那样:Programmatical
我有一堂这样的课: package crossRoadConcurency; import java.util.List; public class TourGuide { private v
目前,谷歌助手SDK接受语音输入,这意味着我的问题相当简单:我想与谷歌助手交谈但不使用语音,只是聊天。这当然是可能的,例如,在 Google Allo 中。谷歌是否公开了用于文本输入的 API? 最佳
我目前正在尝试在一个小型应用程序中使用 Google Guice-3.0。 运行此应用程序时,系统会提示用户输入其姓名和密码。由于此信息直到运行时才知道,所以我使用 AssistedInject实现我
每次我启动Eclipse并按Ctrl + Space时,都会收到以下3个警告弹出窗口。 http://imgur.com/a/2pKdm 它们仅在我第一次按Ctrl + Space时出现。 自重新安装
我使用 Watson Assistant 创建了一个聊天机器人。我通过 API 调用使用它。 假设有两个不同的人想要同时使用我的聊天机器人。那么我必须做什么才能让 Watson 明白是两个不同的人正在
这个问题是关于 Guice @Assisted 和 @Provides 的正确用法以及如何使用。 我目前引用的设计是这样的:层次结构顶部的类也是唯一暴露给客户端的类(基本上是公共(public) AP
在我的 Android 项目中,我们最近在文档之后添加了语音搜索。它工作正常,但仅在搜索一个词时有效。这似乎不是预期的行为,因为在 Google 的示例中他们搜索“毛伊岛之旅”。 我们使用 Googl
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已经尝试了我发现的每一个简单的组合,但不确定如何做到这一点。我什至尝试模拟家庭长按,但你现在得到谷歌语音,看看 logcat 它显示了这个 com.google.android.googlequic
就在 iPhone 应用程序中为用户提供漂亮的文本弹出窗口而言,在用户单击帮助图标后,人们推荐什么方法/样式? 在我看来(关于用户体验)我会想到这样的话: 有一个细边框,周围有圆边 占据了大部分屏幕
我有一个 UITableView,每个 UITableViewCell 都有一个像背景 UIView 一样的黑卡。黑卡并非完全不透明,而是具有 0.6 的 alpha。当我上下移动滚动条时,一切看起来
我们将 Qt 助手用作新的帮助文件系统。但由于我们拥有国际客户群,我们希望以不同的语言启动 Qt 助手。 如您在下面的代码片段中所见,使用生成的 QHC 文件启动助手根本不是问题。 QProce
我是一名优秀的程序员,十分优秀!