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 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?