当方法中有一个用@Value注释修饰的参数时,当然没有编译错误。就像下面的代码:
public void Sample0(@Value("${hmac.key}") Optional<String> key) {
if (key.isPresent()) {
System.out.println(key.get());
} else {
System.out.println("can not find key");
}
}
我的问题是如何调用这样的函数?我尝试将其称为目录,但失败了。调用函数的代码如下。
@Test
public void sampleTest0() {
JwtService.Sample0();
}
因此任何人都可以告诉我调用该函数的正确方法是什么?谢谢。
答案 0 :(得分:0)
我认为这样做的另一种方法是将@Value
保存为局部变量,然后将其用于函数中。
答案 1 :(得分:0)
我认为您只能在构造函数中的参数中使用@Value
。您的Sample0
不是构造函数,而是常规方法,因为它具有返回类型,即void
。
如果在构造函数参数中使用@Value
,则可以自动连接Sample0
,spring会在实例化值时注入值。
如果您需要将值传递给常规方法,则可以在调用类的某个字段上使用@Value
,然后将该字段作为参数传递给Sample0
中的该方法。 / p>