spring 注入变量不可以改成静态变量

Spring中,变量注入到静态方法中,变量会被改为静态的,虽然不报错,但运行时会报空指针错误。
Spring不能注入static变量的原因,具体详情如下所示:
            Spring 依赖注入 是依赖 set方法
                  set方法是 是普通的对象方法
                             static变量是类的属性

	@Value("#{configProperties['guojianurl']}")
	private String guojianurl;
	//注入到静态方法中,变为
	@Value("#{configProperties['guojianurl']}")
	private static String guojianurl;
Spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量
自动生成的getter和setter方法,会带有static的限定符,需要去掉,才可以。

	@Component/** 不能少 */
	public class lei {

		private static String GuoJianurl;
		@Value("#{configProperties['guojianurl']}")
		public void setGuoJianurl(String guojianurl) {
			GuoJianurl = guojianurl;
		}

		public static String staticmethod()
		{
		//GuoJianurl  
		}
	}


猜你喜欢

转载自blog.csdn.net/Pagegle/article/details/79141700