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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器