java - spring 注入为null问题
问题描述
如图:
@Componentpublic 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(); // todoreturn null; }}
创建的类实现HandlerMethodArgumentResolver后,发现在里面注入bean实例都失效了,向上面的redisTemplate实例在运行的时候就为null,同一个包下其他的class都是正常。请问是什么原因导致bean的注入失败。
问题解答
回答1:你使用的UserArgumentResolver对象没有被IoC容器管理, 因为在@Autowired注解没有配置required=false的情况下spring发现没有该对象会直接抛出Exception, 不会出现注入null的情况.
回答2:HandlerMethodArgumentResolver接口应该是被spring实例化的,不是IOC容器实例化管理的
相关文章:
1. javascript - 如图,百度首页,查看源代码为什么什么都没有?2. html - 急求,能否用flex或者高端点的CSS来布局这个图呢?不想用浮动或定位了3. html5 - 只用CSS如何实现input框的宽度随框里输入的内容长短自动适应?4. javascript - 百度坐标,返回目标附近有哪些坐标5. PHP类中的$this6. 请教各位大佬,浏览器点 提交实例为什么没有反应7. android - 百度地图拖拽图标后原来位置的图标还在?8. javascript - 初学angularJS+express,路由路径中/转换成%2F,导致路径失效,求原因?9. php - 淘宝订单拆单表设计10. html5 - H5中播放的视频如何有效的进行知识产权保护-防下载防盗链

网公网安备