Spring注入的思考

170 阅读1分钟

修改工具类遇到的问题

Q1: 静态成员变量怎么注入?

public class ExampleUtil {
 
        private static ExampleClass1 exampleClass1;

	@Autowired
	private ExampleClass2 exampleClass2;

	@Autowired
	private ExampleClass3 exampleClass3;
    
        private static ExampleUtil exampleUtil;

}

A1: set注入

        @Autowired
	public void setExampleClass1(ExampleClass1 exampleClass1){
		ExampleUtil.exampleClass1=exampleClass1;
	}

Q2: exampleUtil怎么被初始化?

A2: 使用@PostConstruct

       @PostConstruct
	public void init() {
	    exampleUtil = this;
        //成员变量需要再赋值
	    exampleUtil.exampleClass2 = this.exampleClass2;
	}

reference

@PostConstruct注解用法