0

我有一个几乎没有静态实用功能的类。

我想在不创建其 bean 的情况下注入一个属性值 << 这是一个静态字段>>。

@Component
class TestUtils {

 @Value("${toke.value}")
 public static String token;

 public static String doOperation(String value) {
   .... do some operation using toke
   return result;
 }

 public static void setToken(String token ) {
  TestUtils.token = token;
 }
}

我从不创建此类的对象。该方法被称为

TestUtils.doOperation(parms);

只是想知道当应用程序启动时,我有什么方法可以设置这个值的属性。

谢谢。

4

1 回答 1

1

只是不要。使您的方法成为实例方法而不是静态方法。使您的字段成为私有实例字段而不是公共静态字段,并在您需要访问以调用该方法的地方注入一个 bean 实例。这就是依赖注入的全部意义所在。

Spring bean 默认情况下是单例的,因此在 JVM 中这样的字段不会超过一个。使其成为实例方法和可注入组件将使使用它的代码可测试,而静态方法则不然。

于 2012-12-15T12:48:24.327 回答