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 - 我是做web前端的,公司最近有一個項目關于數據統計的!2. html5和Flash對抗是什么情況?3. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)4. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。5. javascript - 在ie下為什么會出現這種情況呢 《 無法獲取未定義或 null 引用的屬性“length”》 ?請大神指教。6. css右浮動字的順序顛倒了7. ios - 類似微博首頁,一張圖的時候是如何確定圖大小的?8. javascript - vuejs+elementui 購物車價格計算,點擊加減號修改數量總價都不會改變,但是計算執行了9. javascript - vue過渡效果 css過渡 類名的先后順序10. javascript - 如何使用loadash對[object,object,object]形式的數組進行比較
