springBoot拦截器中不能注入Bean

最近使用springBoot发现在拦截器中不能注入Bean,但是在controller中又能正常注入。

后面网上找了下,解决办法有两种:

第一种:将拦截器注册成bean,就能实现注入

@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter 


将拦截器注册成bean
@Bean
	MyInterceptor localInterceptor() {
        return new MyInterceptor();
    }
	
注册拦截器

 registry.addInterceptor(localInterceptor()).addPathPatterns("/**")
        .excludePathPatterns(excludePathPatterns);

使用:

@Autowired
    private RedisTemplate<String, String> redisTemplate;

第二种:从spring容器中直接获取bean

applicationContext.getBean(stringRedisTemplate);//这里需要注意:redis对象容器中有两个对象,stringRedisTemplate和redisTemplate
我在controller中注入的默认是stringRedisTemplate,后面再拦截器中applicationContext.getBean(stringRedisTemplate)发现怎么都获取不到redis里面的对象
后面改成stringRedisTemplate就可以正常获取了



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值