为了账号安全,请及时绑定邮箱和手机立即绑定

spring 注入为null问题

spring 注入为null问题

LEATH 2019-03-01 11:02:19
如图: @Component public class UserArgumentResolver implements HandlerMethodArgumentResolver{ @Autowired private RedisTemplate<String,User> redisTemplate; @Override public boolean supportsParameter(MethodParameter parameter) { if(parameter.getParameterAnnotation(CurrentUser.class)!=null&& parameter.getParameterType()==User.class){ return true; } return false; } @Override public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest webRequest, WebDataBinderFactory webDataBinderFactory) throws Exception { HttpServletRequest request= (HttpServletRequest) webRequest.getNativeRequest(); // todo return null; } } 创建的类实现HandlerMethodArgumentResolver后,发现在里面注入bean实例都失效了,向上面的redisTemplate实例在运行的时候就为null,同一个包下其他的class都是正常。请问是什么原因导致bean的注入失败。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

你使用的UserArgumentResolver对象没有被IoC容器管理, 因为在@Autowired注解没有配置required=false的情况下spring发现没有该对象会直接抛出Exception, 不会出现注入null的情况.

查看完整回答
反对 回复 2019-03-01
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

HandlerMethodArgumentResolver接口应该是被spring实例化的,不是IOC容器实例化管理的

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 692 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信