spring mvc如何使用resource
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc如何使用resource相关的知识,希望对你有一定的参考价值。
参考技术A 将bean交给Spring Ioc管理时,可以通过@Resource或者@Autowired将bean注入,最近在使用jedis连接池配置时,配置的jedisPoolConfig、jedisPool和jedis操作连接池的封装类redisTool,在操作redis类中注入redisTool总是获取不到jedisPool,Debug显示jedisPool为null,先看看Spring配置的依赖关系:文件:applicationContext.xml
<!-- redis配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxActive" value="20" />
<property name="maxIdle" value="10" />
<property name="maxWait" value="1000" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- jedis pool配置 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy">
<constructor-arg ref="jedisPoolConfig" />
<constructor-arg value="127.0.0.1" />
<constructor-arg type="int" value="6379" />
</bean>
<!-- 包装类 -->
<bean id="redisTool" class="com.twovv.utils.redis.RedisTool">
<property name="jedisPool" ref="jedisPool" />
</bean>
分析原因:redisTool依赖jedisPool,jedisPool又依赖jedisPoolConfig,既然报jedisPool为null,说明Spring在初始化时,并没有实例化jedisPool。
解决办法:通过depends-on明确指定依赖关系实例化顺序。
修订的配置:
<!-- redis配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxActive" value="20" />
<property name="maxIdle" value="10" />
<property name="maxWait" value="1000" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- jedis pool配置 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy" depends-on="jedisPoolConfig">
<constructor-arg ref="jedisPoolConfig" />
<constructor-arg value="127.0.0.1" />
<constructor-arg type="int" value="6379" />
</bean>
<!-- 包装类 -->
<bean id="redisTool" class="com.twovv.utils.redis.RedisTool" depends-on="jedisPool">
<property name="jedisPool" ref="jedisPool" />
</bean>
结论:当依赖关系复杂时,或者依赖链(依赖层次)比较深时最好能够明确指定depends-on来明确声明依赖的bean关系。否则可能因为某一个类在项目启动时,造成Spring没有初始化依赖bean而变成null的问题。本回答被提问者和网友采纳
以上是关于spring mvc如何使用resource的主要内容,如果未能解决你的问题,请参考以下文章
mvc:resources 的注解配置替换 - Spring
spring mvc <mvc:resources location="/resources/" mapping="/resources