如何在类中注入静态String属性而不创建bean

时间:2012-12-15 12:40:04

标签: spring

我有一个静态效用函数很少的类。

我想注入一个属性值<<这是一个静态字段>>没有创建它的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);

只是想知道在应用程序启动时我是否有任何方法可以设置此值的属性。

感谢。

1 个答案:

答案 0 :(得分:1)

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

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