文档章节

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

 钟然千落
发布于 2018/10/20 06:22
字数 390
阅读 50
收藏 5

 

今天本想使用@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的属性和方法的方式来获得值。故放弃这种实现,只好自己写一个读取配置文件的工具类,通过调用配置文件工具类类方法来解析配置文件中数据。

 

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 47
码字总数 6729
作品 0
长宁
程序员
私信 提问
spring@value取不到值的几种情况

一,spring组件重写构造方法,在构造方法中引用@value为null 由于spring实例化顺序为先执行构造方法,再注入成员变量,所以序为先执行构造方法,再注入成员变量,所以ing实例化顺取值为null ...

兜里有佩
2018/05/10
0
0
【springMVC基础】spring获取bean的几种方法

1、ApplicationContext对象 说明:Spring框架程序通过配置文件手工初始化Spring的情况。 2、通过Spring提供的工具类获取ApplicationContext对象 说明:通过ServletContext对象获取Applicati...

卯金刀GG
2018/06/26
0
0
Spring不支持依赖注入static静态变量

在springframework里,我们不能@Autowired一个静态变量,使之成为一个spring bean,例如下面这样: @Autowiredprivate static YourClass yourClass; 可以试一下,yourClass在这种状态下不能够被依...

gaolu
2014/07/31
0
2
Spring整合redis(设置密码)完整版

博主在上个项目中使用了redis,开始使用的jedisPool连接池的方式进行整合,发现这样是不安全,调研了一下,选择了设置redis密码重新整合,总结经验如下: 1)导入Spring-redis的jar具体如下:...

小伟_乌牛
2017/10/30
0
0
spring getbean 方法分析

在最近的项目中,有个地方我们不得不实用getBean的方法,自己从Spring context中获取bean进行数据库操作。 方法一(效率低,极易出现bug,不推荐使用): 刚刚开始的时候,我们使用这中方式,...

gerry_pang
2013/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部