程式碼改造引發的NoSuchBeanDefinitionException:no bean named 'XXXX' available問題解決方案
前段時間專案掃描出現一些不合規範的地方,有類問題就是不能動態載入。於是在程式碼中就換了一個方式:直接從Spring獲得bean物件,然後通過getClass方法獲得類。專案是使用Springboot開發的。
原來:
Class<? extends Object> clazz = Class.forName(className);
現在:
Object bean = applicationContext.getBean(className);
Class<? extends Object> clazz = bean.getClass();
在後續的程式碼測試中出現好多no bean named 'XXXX' available的問題,總結了一下出現的問題:
1、className不是使用全類名例如:com.way.inter.impl.CalImpl,需要轉換成類名首字母小寫:calImpl。因為類交給spring管理的時候一般預設使用小寫的類名作為bean的id;
2、如果類名全部是大寫字母,Spring會直接使用類名作為id,所以類名必須規範使用駝峰結構,這樣有利於在程式碼中統一處理;
3、Component註解後使用value指定名稱,這樣也會影響bean的獲取。例如:@Component(value="CalureImpl");
4、類名命名不規範,使用$等特殊字元;
5、直接使用類介面的名稱獲取實現類的bean,並且介面沒有使用Component註解;
6、專案中存在重名的類也會影響bean的獲取。
相關文章
- Caused by:.NoSuchBeanDefinitionException: No bean named 'userInfoServiceImpl' availableBeanExceptionAI
- Spring中出現:No bean named 'XXX' available問題解決SpringBeanAI
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'aaaa' availableSpringFrameworkBeanExceptionAI
- spring-mybatis整合:NoSuchBeanDefinitionException: No bean named 'xxx.class' availableSpringMyBatisBeanExceptionAI
- 使用@Service註解出現No bean named 'xxxx' available]錯誤BeanAI
- No bean named ''XXX“ availableBeanAI
- No bean named BookServiceImpl availableBeanAI
- Spring:錯誤No bean named 'xxxxxxx' availableSpringBeanAI
- No Bean named 'Xxx' available 異常報錯BeanAI
- SpringBoot 學習之 No bean named ‘xxx’ availableSpring BootBeanAI
- spring中No bean named xxx available錯誤SpringBeanAI
- Maven專案報錯:No bean named 'xxxxxx' availableMavenBeanAI
- No bean named 'xxx' is defined錯誤,原因及解決方案Bean
- 報錯:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is definedSpringFrameworkBeanException
- idea maven搭建spring報錯:No bean named 'xxx' availableIdeaMavenSpringBeanAI
- No module named MYSQLdb 問題解決MySql
- No bean named 'cacheManager' availablej 異常解決BeanAI
- 解決 Sorry,this Adobe app is not available 問題的方法APPAI
- 舊專案 TypeScript 改造問題與解決方案記TypeScript
- could not autowire. No beans of 'xxxx' 問題解決Bean
- Git:warning: CALF wilL be replaced by LF in xxxx 問題解決Git
- 記一次idea構建springmvc報錯:No bean named 'cacheManager' availableIdeaSpringMVCBeanAI
- python ModuleNotFoundError: No module named ‘requests‘ 的 解決方案PythonError
- 低程式碼開發可以解決哪些問題
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- 解決Url帶中文引數亂碼問題
- 線上直播原始碼開發IOS端問題解決方案原始碼iOS
- 解決Parameter '__frch_item_0' not found. Available parameters 問題AI
- ts程式碼提示很慢問題解決
- JMeter響應亂碼問題解決方案教程JMeter
- 解決Python找不到ssl模組問題 No module named _sslPython
- 解決:ModuleNotFoundError: No module named ‘urllib3.packages.six.moves問題ErrorPackage
- HttpClient多檔案上傳程式碼及普通引數中文亂碼問題解決HTTPclient
- 跨域問題,解決方案 – CORS方案跨域CORS
- PHP高併發商品秒殺問題的解決方案PHP
- Mycat分片方案需要解決的問題
- 玩Deno遇到問題的解決方案
- whisper v3 finetune 中文亂碼問題的解決方案