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. python - 《flask web 开发》一书,数据库中多对多关系的实现问题?2. node.js - 微信的自动回复问题3. python - pyspider 运行 和 age 参数问题?4. php - 注册验证邮箱失效后操作问题5. 13寸笔记本win10 界面字体有点小6. java如何高效读写10G以上大文件7. node.js - 如何在webstorm中启动并连接mongodb数据库呢?8. html - css气泡,实现“倒三角(不知道算不算三角了)”可透明的。9. 关于phpstudy设置主从数据库10. mysql - 这种分级一对多,且分级不平衡的模型该怎么设计表?

网公网安备