程式碼改造引發的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
- No bean named BookServiceImpl availableBeanAI
- spring-mybatis整合:NoSuchBeanDefinitionException: No bean named 'xxx.class' availableSpringMyBatisBeanExceptionAI
- 使用@Service註解出現No bean named 'xxxx' available]錯誤BeanAI
- No bean named ''XXX“ availableBeanAI
- 報錯No bean named ' is defined的原因和解決方案Bean
- No module named MYSQLdb 問題解決MySql
- No bean named 'xxx' is defined錯誤,原因及解決方案Bean
- No Bean named 'Xxx' available 異常報錯BeanAI
- 舊專案 TypeScript 改造問題與解決方案記TypeScript
- spring中No bean named xxx available錯誤SpringBeanAI
- No bean named 'cacheManager' availablej 異常解決BeanAI
- 關於maven專案tomcat啟動異常org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 解決MavenTomcatSpringFrameworkBeanException
- SpringBoot 學習之 No bean named ‘xxx’ availableSpring BootBeanAI
- Spring Boot學習之No bean named 'entityManagerFactory' available異常Spring BootBeanAI
- opatch option Not available yet問題的解決方法AI
- mysql語句中有引號的問題解決方案MySql
- 報錯:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxx'is definedSpringFrameworkBeanException
- ImportError: No module named thrift.Thrift問題解決ImportError
- 線上直播原始碼開發IOS端問題解決方案原始碼iOS
- idea maven搭建spring報錯:No bean named 'xxx' availableIdeaMavenSpringBeanAI
- 低程式碼開發可以解決哪些問題
- 解決 Sorry,this Adobe app is not available 問題的方法APPAI
- python ModuleNotFoundError: No module named ‘requests‘ 的 解決方案PythonError
- webView的使用及其亂碼問題的解決方案WebView
- linux kernel引發的oracle問題及解決LinuxOracle
- 微服務改造中解決跨庫問題的思路微服務
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- python 中文亂碼問題解決方案Python
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xxxxx' iSpringFrameworkBeanException
- 解決Url帶中文引數亂碼問題
- jsp無法使用bean的問題 等到解決問題為止!!!!JSBean
- R語言中package ‘xxxx’ is not available (for R version 3.2.5)解決R語言PackageAI
- 記一次idea構建springmvc報錯:No bean named 'cacheManager' availableIdeaSpringMVCBeanAI
- JSP開發過程遇到的中文亂碼問題及解決方案JS
- oracle 輸出中文亂碼問題解決方案Oracle