java - spring 注入為null問(wèn)題
問(wèn)題描述
如圖:
@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; }}
創(chuàng)建的類實(shí)現(xiàn)HandlerMethodArgumentResolver后,發(fā)現(xiàn)在里面注入bean實(shí)例都失效了,向上面的redisTemplate實(shí)例在運(yùn)行的時(shí)候就為null,同一個(gè)包下其他的class都是正常。請(qǐng)問(wèn)是什么原因?qū)е耣ean的注入失敗。
問(wèn)題解答
回答1:你使用的UserArgumentResolver對(duì)象沒(méi)有被IoC容器管理, 因?yàn)樵贎Autowired注解沒(méi)有配置required=false的情況下spring發(fā)現(xiàn)沒(méi)有該對(duì)象會(huì)直接拋出Exception, 不會(huì)出現(xiàn)注入null的情況.
回答2:HandlerMethodArgumentResolver接口應(yīng)該是被spring實(shí)例化的,不是IOC容器實(shí)例化管理的
相關(guān)文章:
1. 請(qǐng)問(wèn)寫好python模塊以后,文檔怎么寫?2. mysql - 在下剛?cè)腴Tsql 關(guān)于sql的語(yǔ)法詢問(wèn)3. javascript - Weex 安卓調(diào)試問(wèn)題4. html5 - 最近在自學(xué)react 求一個(gè)react表單提交的例子5. 初來(lái)乍到,相對(duì)路徑問(wèn)題,新手求教6. javascript - 原生JS和jQuety關(guān)于設(shè)置圖片輪播定時(shí)器問(wèn)題7. 老師您好!我有一個(gè)問(wèn)題、8. java - 新人有一個(gè)問(wèn)題想問(wèn)問(wèn)大家,weex怎么動(dòng)態(tài)修改控件高度9. list - python 求助10. javascript - jq 上傳圖片成功后添加一個(gè)新的上傳框時(shí)出現(xiàn)問(wèn)題
