Spring不能注入Static变量的原因及Spring注入静态变量

 更新时间:2016年01月01日 11:13:00   作者:Draenei  
这篇文章主要介绍了Spring不能注入Static变量的原因及Spring注入静态变量,需要的朋友可以参考下

下面给大家介绍spring不能注入static变量的原因,具体详情如下所示:

Spring 依赖注入 是依赖 set方法

set方法是 是普通的对象方法

static变量是类的属性

 @Autowired 
 private static JdbcTemplate jdbcTemplate;

单纯看这个注入过程是没有报错的,但是在接下来的jdbcTemplate.query()会报空指针错误.

ps:Spring注入静态变量

今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码:

 Class Util{
  private static XXX xxx;
  xxx = BeanUtil.getBean("xxx");
  public static void method(){
    xxx.func(); 
  }
  public static void method(){
    xxx.func();
  }   
 }

  这里是使用的getBean的方式,获得XXX的实例,但是别人说这个方法不好,想要注入的方式。

  但是静态的XXX如何注入呢?

  上网查了很多的说法,其实很简单:

 Class Util{
  private static XXX xxx;
  public void setXxx(XXX xxx){
    this.xxx = xxx;
  }
  public void getXxx(){
    return xxx;
  }
  public static void method1(){
    xxx.func1(); 
  }
  public static void method2(){
    xxx.func2();
  }   
}

  在xml中正常配置注入就可以了。

<bean value="test" class="x.x.x.Util">
  <property value="xxx" ref="xxx"/>
</bean>

  这里要注意,自动生成的getter和setter方法,会带有static的限定符,需要去掉,才可以。

相关文章

  • java删除文件时总是返回false,删不掉的解决方案

    java删除文件时总是返回false,删不掉的解决方案

    这篇文章主要介绍了java删除文件时总是返回false,删不掉的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java8 Comparator排序方法实例详解

    Java8 Comparator排序方法实例详解

    这篇文章主要介绍了Java8 Comparator排序方法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java集合Stream流操作的基本使用教程分享

    Java集合Stream流操作的基本使用教程分享

    流操作并不会影响原来的集合,可以简单认为,流操作是把集合中的一个元素逐个复制放到一个首尾相接的流动的水槽中。这篇文章整理了Stream流操作的基本使用,需要的可以参考一下
    2023-02-02
  • Java ObjectMapper使用详解

    Java ObjectMapper使用详解

    ObjectMapper类是Jackson的主要类,它可以帮助我们快速的进行各个类型和Json类型的相互转换,本文给大家介绍Java ObjectMapper的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)

    SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)

    本文主要介绍了SpringBoot+Thymeleaf+ECharts实现大数据可视化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • Java jwt使用公钥字符串验证解析token锁方法详解

    Java jwt使用公钥字符串验证解析token锁方法详解

    关于java获取Token验证的问题相信很多人都遇见过,尤其是对刚接触微信开发的人来说确实有点棘手,下面这篇文章主要给大家介绍了关于Java中token验证解析的相关资料,需要的朋友可以参考下
    2023-02-02
  • Scala入门教程详解

    Scala入门教程详解

    这篇文章主要介绍了Scala入门教程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • JDK的具体安装步骤(带图带解释巨详细)

    JDK的具体安装步骤(带图带解释巨详细)

    Java是一种广泛使用的编程语言,许多应用程序和系统都依赖于它,如果您想进行Java编程或运行Java应用程序,首先需要安装Java开发工具包(JDK),这篇文章主要给大家介绍了关于JDK具体安装步骤的相关资料,文中介绍的方法带图带解释巨详细,需要的朋友可以参考下
    2024-05-05
  • 解析Java实现随机验证码功能的方法详解

    解析Java实现随机验证码功能的方法详解

    本篇文章是对Java实现随机验证码功能的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java 普通代码块静态代码块执行顺序(实例讲解)

    Java 普通代码块静态代码块执行顺序(实例讲解)

    下面小编就为大家带来一篇Java 普通代码块静态代码块执行顺序(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论