spring是否不能直接注入jedispool
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring是否不能直接注入jedispool相关的知识,希望对你有一定的参考价值。
参考技术Aspring是不能直接注入jedispool作为一个静态变量的
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="200" />
<property name="maxTotal" value="500" />
<property name="maxWaitMillis" value="60000" />
<property name="testOnBorrow" value="false" />
</bean>
<!-- redis单机 通过连接池 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close" depends-on="poolConfig">
<constructor-arg name="poolConfig" ref="poolConfig" />
<constructor-arg name="host" value="XXXXXXX" />
<constructor-arg name="port" value="XXXX" />
<constructor-arg name="timeout" value="6000" />
<constructor-arg name="password" value="XXXXXX"/>
</bean>
配置是没有问题的 ,是可以依赖注入的, 但是如果是注入的对象是静态的就不可以
@Autowired
public static JedisPool jedisPool;
这么用是错误的
我是在工具类中这么使用 jedisPool 是不对的
后来我就是把jedisPool作为参数传进我的工具类方法中了
spring是无法依赖注入一个静态变量
http://blog.csdn.net/randyfeng007/article/details/45330793
Spring不支持依赖注入static静态变量
我不知道你们是不是这个问题导致的, 如果不是请略过 。
不知道楼主的问题是什么 ,解决了没有,可以分享一下 谢谢!
Spring依赖注入详解
1.set注入
启动容器后看看到底能不能拿到teacherService的值。可以看到拿到了值。我们具体来分析怎么注入的
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean
发现pvs里面有一个我们自己set的值
直接进行属性赋值。
org.springframework.beans.factory.support.BeanDefinitionValueResolver#resolveValueIfNecessary
org.springframework.beans.factory.support.BeanDefinitionValueResolver#resolveReference
直接从容器中获取,然后进行属性赋值
真正进行属性赋值:
org.springframework.beans.AbstractPropertyAccessor#setPropertyValues(org.springframework.beans.PropertyValues, boolean, boolean)
问题1:如果set方法乱写可以注入吗?
不行,会报错,我们看看具体在哪里报错
org.springframework.beans.AbstractNestablePropertyAccessor#setPropertyValue(org.springframework.beans.AbstractNestablePropertyAccessor.PropertyTokenHolder, org.springframework.beans.PropertyValue)
这里会报错
会将set后面的方法去掉set,然后首字母小写放入缓存中,来获取对应的注入值,如果找不到直接报错。
如果是这样会报错吗?不会,底层拿到set方法然后进行反射,故set方法和注入的属性一直就不会报错。
如下就不会报错:
以上是关于spring是否不能直接注入jedispool的主要内容,如果未能解决你的问题,请参考以下文章
Spring不能直接@autowired注入Static变量问题和解决方案