doncha 2019-07-31 10:16 采纳率: 41.7%
浏览 680

类中怎么使用在spring配置文件中已经创建好的bean呢

在整合redis+shiro遇到这样一个问题,在spring配置文件里面创建了一个这样的bean

  <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory"   ref="connectionFactory" />
        <!--key 的存储不使用默认的 JDK 序列化,而是使用 StringRedisSerializer 的序列化方式-->
        <property name="hashKeySerializer" ref="stringRedisSerializer"/>
        <property name="keySerializer" ref="stringRedisSerializer"/>
    </bean>

然后在ShiroRedisCache类文件中,使用@Autowired注入的redisTemplate一直为空值

 @Autowired
    private RedisTemplate<Serializable,Serializable> redisTemplate;

但是使用加载配置文件的方式,就可以正常获得redisTemplate的值

 private static ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml");

    private static RedisTemplate<Serializable,Serializable> redisTemplate = (RedisTemplate<Serializable, Serializable>) ac.getBean("redisTemplate");

请问哪位大神能够帮忙解答一下,应该怎么使用注解方式注入bean

  • 写回答

1条回答 默认 最新

  • zhshchilss 2019-07-31 10:28
    关注
         @Autowired
        private RedisTemplate<Serializable,Serializable> redisTemplate;
    

    粘贴到一个新建的类里面,只注入这一个,看有没注入。
    排查和ShiroRedisCache有没有关系
    2.

        @Autowired
        private RedisTemplate  redisTemplate;
    

    去掉泛型再看一看,能不能注入

    3.在一个方法里,调用ApplicationContextAware的方法,看看容器里到底有没有这个bean。有的话,看具体信息是什么

    4.是不是xml没有加载,环境配错了

    5.或许重启就好了

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献