Scala Guice如何将配置参数作为字符串注入?

吉普87c

我在Java中找到以下代码,解释了如何使用guice将配置参数很好地注入为带注释的字符串参数。https://github.com/google/guice/wiki/FrequentlyAskedQuestions

除了scala,我想做同样的事情。你会怎么做?

并请注意,我正在寻找使用通用特征/类的解决方案。的东西

trait Foo[T <- SomeOtherType] {}
class FooImpl[T <- SomeOtherType](val url: String) extend Foo[T] {}

我研究了辅助注射,但无法解决我的问题。

任何帮助都感激不尽。谢谢

弗拉基米尔·马特维耶夫(Vladimir Matveev)

您将在Scala中完全像在Java中那样进行操作。首先,定义一个注释:

/**
 * Annotates the URL of the foo server.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@BindingAnnotation
public @interface FooServerAddress {}

注意,这是Java代码。您不能在Scala中定义运行时注释。

然后,绑定一个带有此注释的常量:

bindConstant().annotatedWith(classOf[FooServerAddress])

最后,您注入它:

class FooImpl[T] @Inject() (@FooServerAddress val url: String) extends Foo[T] {}

目标类的泛型在这里并不重要。

另外,如果将Guice与Scala一起使用,请考虑使用scala-guice其中,它可以让您忽略这些笨拙的classOfs。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将bash变量作为字符串而不是数组传递给scala文件

如何将棋子与 Scala 中的字符串分开?

Java或Scala。如何将像\ x22这样的字符转换为字符串

如何使用 Shapeless 或 Macro 将 Scala 案例类字段和值作为(字符串,字符串)获取

如何将Scala Map转换为JSON字符串?

如何将Scala代码块转换为字符串?

如何将数据帧的单行转换为 Scala 中的字符串?

如何将scala fs2流转换为字符串?

如何将JSON字符串解析为Spark Scala中的不同列?

spark-streaming scala:如何将字符串数组传递给过滤器?

如何将Scala中的元素拆分为字符串数组

Scala Guice传递参数

Scala 字符串插值动态注入值

如何使用scala分割字符串?

Scala字符串-如何更改行

Scala:如何通过拆分字符串将字符串序列转换为元组序列

如何将类似数组的字符串转换为 spark-dataframe (Scala api) 中的数组?

Scala-如何将字符串值传递到数据帧过滤器(Spark-Shell)

如何将Scala Double转换为二进制64位字符串

Scala Spark如何将列array [string]转换为带有JSON数组的字符串?

Spark scala 如何将数据框中的整数列转换为十六进制大写字符串?

Scala:字符串“ +”和“ ++”

字符串的Scala转换

Scala字符串修剪

Scala-如何将json作为输入参数并解析它?

如何使用类名和函数名作为字符串调用Scala函数

Scala字符串toInt-Int不接受参数

如何将字符串作为包含多个字符串的参数

(Scala TYPE-SAFETY) 仅当字符串具有 .txt 扩展名时才将字符串作为参数,否则会出现编译错误吗?