`

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

阅读更多

 

【视频&交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

 

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

问题的提出:

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

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

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[] beanNamesctx.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[] beanNamesctx.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[] beanNamesctx.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 系列博客】

视频&交流平台

à Spring Boot网易云课堂视频

http://study.163.com/course/introduction.htm?courseId=1004329008

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

 

3、Spring Boot日志-log4j2

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics