【从零开始学习Spirng Boot—常见异常汇总】

问题的提出:

我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean  就是我们定义的bean无法进行注入,那到底是什么原因呢,有时候挺难定位的,当然这个也需要养成良好的编码习惯,这样也会降低出错的几率。 那么一般说是No quanlifying bean很有可能就是我们没有使用注解或者xml注入我们的bean,要么就是我们bean的名称不是我们注入时指定的名称,那么我们就会想如何查看已经载入到spring boot的bean呢?

其实这个操作起来很简单,看如下介绍知道了。

Spring main方法启动

我们以前写代码在main方法的启动类基本上就一行代码,看如下:

SpringApplication.run(ApiCoreApp.class, args);

我们只需要稍微调整下就可以获取到ApplicationContext上下文了,在这个类中就可以有很多的方法进行操作了,修改为如下:

ApplicationContext  ctx =  SpringApplication.run(ApiCoreApp.class, args);

有了ctx那么接下来就很简单了:

第一种情况获取所有的beans:

ApplicationContext  ctx =  SpringApplication.run(ApiCoreApp.class, args);

String[] beanNames =  ctx.getBeanDefinitionNames();

System.out.println("所以beanNames个数:"+beanNames.length);

for(String bn:beanNames){

System.out.println(bn);

}

观察控制台打印(这里只截取部分信息):

所以beanNames个数:177

org.springframework.context.annotation.internalPersistenceAnnotationProcessor

org.springframework.context.event.internalEventListenerProcessor

org.springframework.context.event.internalEventListenerFactory

apiCoreApp

org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor

org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor

demoInfo3Dao

demoInfoDao

demoInfoForBaseJpaObjDao

demoInfo1DaoImpl

我们会看到控制台打印了好多的自带的对象,那么怎么查看我们自己编写的呢?看如下代码:

第二种情况获取我们指定的注解类:

@service注解代码:

ApplicationContext  ctx =  SpringApplication.run(ApiCoreApp.class, args);

String[] beanNames =  ctx.getBeanNamesForAnnotation(Service.class);

System.out.println("Service注解beanNames个数:"+beanNames.length);

for(String bn:beanNames){

System.out.println(bn);

}

查看控制台打印:

service注解beanNames个数:3

demoInfo1Service

demoInfo2Service

demoInfoService

是不是瞬间干净了很多。

@Repository注解代码:

ApplicationContext  ctx =  SpringApplication.run(ApiCoreApp.class, args);

String[] beanNames =  ctx.getBeanNamesForAnnotation(Repository.class);

System.out.println("Repository注解beanNames个数:"+beanNames.length);

for(String bn:beanNames){

System.out.println(bn);

}

控制台打印如下:

Repository注解beanNames个数:4

demoInfo3Dao

demoInfoDao

demoInfoForBaseJpaObjDao

demoInfo1DaoImpl

【Spring Boot 系列博客】

61. mybatic insert异常:BindingException: Parameter 'name' not found【从零开始学Spring B】

60. Spring Boot写后感【从零开始学Spring Boot】

59. Spring Boot Validator校验【从零开始学Spring Boot】

58. Spring Boot国际化(i18n)【从零开始学Spring Boot】

57. Spring 自定义properties升级篇【从零开始学Spring Boot】

56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】

55. spring boot 服务配置和部署【从零开始学Spring Boot】

54. spring boot日志升级篇—logback【从零开始学Spring Boot】

52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】

51. spring boot属性文件之多环境配置【从零开始学Spring Boot】

50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot】

49. spring boot日志升级篇—理论【从零开始学Spring Boot】

48. spring boot单元测试restfull API【从零开始学Spring Boot】

47. Spring Boot发送邮件【从零开始学Spring Boot】

46. Spring Boot中使用AOP统一处理Web请求日志

45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】

43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

42. Spring Boot多数据源【从零开始学Spring Boot】

41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】

40. springboot + devtools(热部署)【从零开始学Spring Boot】

39.4 Spring Boot Shiro权限管理【从零开始学Spring Boot】

39.3 Spring Boot Shiro权限管理【从零开始学Spring Boot】

39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot】

39.1 Spring Boot Shiro权限管理【从零开始学Spring Boot】

38 Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】

37 Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】

36 Spring Boot Cache理论篇【从零开始学Spring Boot】

35 Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】

34Spring Boot的启动器Starter详解【从零开始学Spring Boot】

33 Spring Boot 监控和管理生产环境【从零开始学Spring Boot】

32 Spring Boot使用@SpringBootApplication注解【从零开始学Spring Boot】

更多查看博客: http://412887952-qq-com.iteye.com/

转载于:https://www.cnblogs.com/hehehaha/p/6147068.html

70.打印所有Spring boot载入的bean【从零开始学Spring Boot】相关推荐

  1. (11)Spring Boot配置ContextPath【从零开始学Spring Boot】

    Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application ...

  2. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个 ...

  3. (39.3) Spring Boot Shiro权限管理【从零开始学Spring Boot】

    在学习此小节之前您可能还需要学习: (39.1) Spring Boot Shiro权限管理[从零开始学Spring Boot] http://412887952-qq-com.iteye.com/b ...

  4. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  5. (30)导入时如何定制spring-boot依赖项的版本【转载】【从零开始学Spring Boot】...

    此文章转载地址:http://www.tuicool.com/articles/RJJvMj3 请注重作者的版权. spring-boot通过maven的依赖管理为我们写好了很多依赖项及其版本,我们可 ...

  6. 54. spring boot日志升级篇—logback【从零开始学Spring Boot】

    在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...

  7. (13)处理静态资源(自定义资源映射)【从零开始学Spring Boot】

    上面我们介绍了Spring Boot 的默认资源映射,一般够用了,那我们如何自定义目录?  这些资源都是打包在jar包中的,然后实际应用中,我们还有很多资源是在管理系统中动态维护的,并不可能在程序包中 ...

  8. 64.JPA命名策略【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 在(39.2). Spring Boot Shiro权限管理[从零开始学Spring Boot] 这一章节中有人碰到这样一个问题"导入的 ...

  9. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

最新文章

  1. ggplot2笔记3:工具箱——误差线、加权数、展示数据分布
  2. 梯度爆炸是什么?有什么后果?如何判断梯度爆炸?如何避免梯度爆炸?
  3. AppCompatActivity与toolbar的结合
  4. 007_html头部元素
  5. xp计算机关闭139端口,小编搞定xp系统电脑关闭139端口的图文方法
  6. 面试基操:微服务拆分需要考虑什么因素?
  7. CSS IE6躲猫猫Bug
  8. 外卖小哥高考623分!查分后淡定送外卖
  9. 银行不放款算买房人违约吗?
  10. 浏览器数据库 IndexedDB(一) 概述
  11. 【渝粤教育】国家开放大学2018年春季 8618-22T燃气行业规范 参考试题
  12. 一个奇怪的MySQL慢查询,打懵了一群不懂业务的DBA!
  13. bootstrap popover弹框内容换行
  14. ZOJ3332 Strange Country II java
  15. 计算机网络mac是什么意思,无线设备
  16. 顺丰快递单号要怎么快速查询物流并导出信息
  17. 打造华丽QQ5.0侧滑效果
  18. JAVA面试题集(2) (转)
  19. 以太坊转账参数java_【ETH钱包开发04】web3j转账ERC-20 Token
  20. RISC-V的ARTY工程实现

热门文章

  1. 快速排序(二)最后修改
  2. 地址本在不同手机间的迁移
  3. [转载]ESFramework 4.0 快速上手(15) -- 客户端登录验证
  4. Azure Logic Apps正式发布
  5. 微信浏览器跳转页面加载loading效果问题
  6. 解决文字无法缩小的问题
  7. 雨季来临 对车辆涉水说“NO”
  8. 《The Art of Readable Code》 读书笔记 01
  9. 狼奔代码生成工具使用心得
  10. 一项横断面人群研究中比较放射学阴性的中轴脊柱关节炎患者与强制性脊柱炎患者之间的差别...