关于使用spring注解注入静态属性

来源:互联网 发布:vb趣味小游戏编程代码 编辑:程序博客网 时间:2024/05/01 13:17

1. 使用场景

一般需要在一个工具类中使用@Autowired 注解注入一个service。但是由于工具类方法一般都写成static,所以直接注入就存在问题。

2. 解决方法

  • 方法1
@Componentpublic class BooUtil {    private static Foo foo;    @Autowired    public BooUtil(Foo foo) {        BooUtil.foo = foo;    }    public static void randomMethod() {         foo.doStuff();    }}
  • 方法2
@Componentpublic class BooUtil {    private static Foo foo;    @Autowired    private Foo tFoo;    @PostConstruct    public void init() {        BooUtil.foo = tFoo;    }    public static void randomMethod() {         foo.doStuff();    }}

注意: 工具类上要加 @Component ,该类需要被spring管理注入

亲测方法2,可以解决,方法1没有测试

原创粉丝点击