那些年我们遇到的坑(3)-basePackages和scanBasePackages
1.SpringBootApplication启动时会默认扫描主类当前包及子包,如果需要扫描主类当前包外的其他包或不扫描当前包下的特定包或类,可通过下列属性实现:
Class<?>[] exclude() default {};
String[] excludeName() default {};
String[] scanBasePackages() default {};
Class<?>[] scanBasePackageClasses() default {};
详细解释请见org.springframework.boot.autoconfigure.SpringBootApplication,示例如下:
@SpringBootApplication(excludeName=("com.gxfw.wx.service.UserService"), scanBasePackages=("com.gxfw"))
excludeName属性未经测试,此处权供参考
2.@EnableFeignClients注解默认也是会扫描注解所在包的当前包及子包,如果需要扫描其他包下的FeignClient,需要单独使用属性指定
String[] basePackages() default {};
Class<?>[] basePackageClasses() default {};
Class<?>[] defaultConfiguration() default {};
Class<?>[] clients() default {};
详细解释请见org.springframework.cloud.netflix.feign.EnableFeignClients,示例如下:
@EnableFeignClients(basePackages = ("com.gxfw"))
总结:@SpringBootApplicatoin是用的@ComponentScan扫描,扫描的是Component,包括@Component, @Controller, @Service, @Repository等,而@EnableFeignClients扫描的是@FeignClient,所以在指定扫描路径时要分别指定,否则会报异常:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.gxfw.bbs.feign.ArticleFeignClient' available: expected at least 1 bean which qualifies as autowire candidate.
以及SpringBoot的启动错误:
Description:
Field articleFeignClient in com.gxfw.bbs.wx.controller.ArticleAPI required a bean of type ‘com.gxfw.bbs.feign.ArticleFeignClient’ that could not be found.
Action:
Consider defining a bean of type ‘com.gxfw.bbs.feign.ArticleFeignClient’ in your configuration.
那些年我们遇到的坑(3)-basePackages和scanBasePackages相关推荐
- 那些年我们遇到的坑(1)-Description Resource Path Location Type Archive for required library
在下载JAR包过程中遇到了错误,根据提示找到maven仓库报错的目录,将该目录下的所有文件删除重新下载即可
- 第03课:Spring Boot 启动原理
引言 Spring Boot 大大简化了我们的开发配置,节省了大量的时间,确实比较方便.但是对于新手来说,如果不了解个中原理,难免会遇到坑. 本文作者将带领大家走近神秘的 Spring Boot,一步 ...
- spring boot 启动类
做项目用到spring boot 感觉spring boot用起来比较流畅.想总结一下,别的不多说,从入口开始. spring boot启动类Application.class 不能直接放在main/ ...
- ❤️14万字的《微服务开发SpringBoot—从基础高级》(建议收藏)❤️
文章目录 1.什么是SpringBoot? Spring框架回顾 2.什么是微服务架构? 特点 3.第一个SpringBoot程序 1.环境准备 1.创建基础项目说明 2.项目创建方式一: 3.项目创 ...
- SpringCloud从入门到精通(超详细文档)
前言:认识 Spring Cloud 及应用现状 Spring Cloud 是什么? 在学习本课程之前,读者有必要先了解一下 Spring Cloud. Spring Cloud 是一系列框架的有序集 ...
- SpringBoot自动配置的原理及实现
SpringBoot的核心就是自动配置,自动配置是基于条件判断配置Bean 自动配置的源码在spring-boot-autoconfigure-2.2.13.RELEASE SpringBoot运行原 ...
- springboot扫描组件_SpringBoot入口类和@SpringBootApplication详解
SpringBoot项目创建完成之后默认会生成一个*Application的入口类,通过该类的main方法即可启动SpringBoot项目. @SpringBootApplication(exclud ...
- 好程序员分享SpringBoot须掌握的注解
前言 Spring经历了如下几个阶段: 第一阶段:xml配置 在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里 ...
- Spring Boot - 自动配置实现原理
文章目录 Pre @SpringBootApplication 注解 @ComponentScan 注解 @SpringBootConfiguration 注解 @EnableAutoConfigur ...
最新文章
- 大话IT职场之工作和生活的平衡
- Linux服务器和客户端之间的数据同步(备份)
- C语言高级编程:接续符‘\‘的用法
- 数据中异常值的鉴定和处理(1)
- 骨髓基质在正常和白血病个体中的细胞图谱|Cell最新(文末有彩蛋)
- 构造方法 c# 0106
- 大话深度学习:B站Up主麦叔教你零代码实现图像分类神经网络
- SGU-169 Numbers(找规律)
- 【转】处理wording的一些参考
- 计算机毕业设计Java多媒体网络教学(源码+系统+mysql数据库+lW文档)
- TFIDF理解和应用
- 一次内存泄露的分析及总结
- facebook登陆授权 服务器接入记录
- Fluent compiled 失败:UDF library you are trying to load (libudf) is not compiled for parallel on the
- 在C语言中使用fflush(stdin)
- 宁芝普拉姆键盘说明书以及键盘校验软件
- 项目实训(十六)FPS游戏之PUN角色位移同步,动画状态同步
- 67键键盘如何输出`和~符号(一百五十一)
- Python实战笔记-常用知识点
- 乐视x820android最新版本,乐视 Max2 Android 10更新教程