scala - 使用可注入参数创建类
问题描述
考虑以下类:
class MongoDumpBuilder (recordingId: String, parquetService: ParquetService) {
...
}
我想注入parquetService
,问题是我想创建MongoDumpBuilder
如下:
注意:我想传递recordingId.stringify
给班级
new MongoDumpBuilder(recordingId.stringify)
.withPacificEvents(pacificEvents)
.withAssets(assets)
.withTransactions(transactions)
.withReports(reports)
.withExpenses(expenses)
.build()
但这仅适用于:
new MongoDumpBuilder(recordingId.stringify, parquetService)
如果我愿意MongoDumpBuilder
,Inject
我将无法创建它
class MongoDumpBuilder @Inject()(recordingId: String, parquetService: ParquetService) {
???
}
任何想法如何解决它?
解决方案
您可以使用命名来绑定recordingId
. 将此添加到您的Module
:
bind(classOf[String]).annotatedWith(Names.named("recordingId")).toInstance(recordingId.stringify)
然后定义你的类:
class MongoDumpBuilder @Inject()(@Named("recordingId") val recordingId: String, parquetService: ParquetService) {
...
}
推荐阅读
- amazon-web-services - 在 AWS 上以 map reduce 方式转换 CSV 中的行
- html - 添加 data-bs-toggle 和 data-bs-target 断开链接
- sql - PostgreSQL 生成丢失的记录并将它们与源表分组
- spring-boot - 创建与我们拥有的发布队列一样多的 PublisherConnectionFactory 和 RabbitTemplate
- c# - 从 expando 对象构建的 JSON 为多语言数据设置了不正确的键和值
- javascript - TypeScript/Cypress 命令只接受定义的参数值
- python - 如何使用平滑曲线连接近似圆形分布的点?
- sql - regexp_substr 与 Oracle 后面的样子
- python - 去除信号的偏移
- html - 如何从 html 端获取通过 HtmlOutput 的 setTitle 设置的标题?