-->
  • 39141

    文章

  • 313

    评论

  • 27

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Spring中static变量不能@value注入的原因

喜欢本站的朋友可以收藏本站,或者加入QQ群:172816590Web网页设计师,我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

 

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。

类似于这样写的。

public class RedisShardedPool {
private static ShardedJedisPool pool;//sharded jedis连接池
@Value("redis.max.total")
private static Integer maxTotal;
……
}

后来发现是因为这个变量是static的,而spring不支持依赖注入值到静态变量。
然后看到有人通过setter注入实现,如下

@Component
public class TestValue {

public static String maxTotal;

@Value("${redis.max.total}")
public void setDatabase(String maxTotal) {
TestValue.maxTotal= maxTotal;
}
}

于是我也改成这种样子的,但是还是获得不到值,因为我没在类上加@Component注解(或者类似的注解),所以spring扫描不到,也就识别不出,@Value还是会得到null。由于我这个是工具类,里面都是static方法,调用时也都是调用类方法,所以也不需要申明为component,也不需要通过@Autowired或者@Resource调用。而且,由于这个类里面是static方法和属性,也不能通过调用其他非static的属性和方法的方式来获得值。故放弃这种实现,只好自己写一个读取配置文件的工具类,通过调用配置文件工具类类方法来解析配置文件中数据。

 


 转载至链接:https://my.oschina.net/u/2320807/blog/2249774。


您觉喜欢本网站,或者觉得本文章对您有帮助,那么可以选择打赏。
打赏多少,您高兴就行,谢谢您对梁钟霖这小子的支持! ~(@^_^@)~

  • 微信扫一扫

    微信打赏
  • 支付宝扫一扫

    支付宝打赏
转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤