如何让spring扫描主类当前包外的其他jar包 --- scanBasePackages 应用

自己开发一个jar,想给其他项目直接调用。

都是springboot工程,jar包里有有些类带了spring的注解,系统能被加载到spring中。

之前也这样用过,没有发现什么问题,这次发现pom引用了,程序中编译也没有问题,但是springboot启动以后不加载。jar中的bean。

最后找到了问题的根本原因:

SpringBootApplication启动时会默认扫描主类当前包及子包,之前之所以成功了,是因为恰巧引用的包 package路径一样。

那么如何让spring扫描主类当前包外的其他包呢?

Class<?>[] exclude() default {};
String[] excludeName() default {};
String[] scanBasePackages() default {};
Class<?>[] scanBasePackageClasses() default {};

这一组属性可以扫描主类当前包外的其他包或不扫描当前包下的特定包或类。

例如:

@SpringBootApplication(excludeName=("com.tt.service.UserService"), scanBasePackages=("com.tt"))

目前只要scanBasePackages就够用了。

网上查的时候看到 @EnableFeignClients 也有类似的属性,还没有用过。

String[] basePackages() default {};
Class<?>[] basePackageClasses() default {};
Class<?>[] defaultConfiguration() default {};
Class<?>[] clients() default {};

总结:@SpringBootApplicatoin是用的@ComponentScan扫描,扫描的是Component,包括@Component, @Controller, @Service, @Repository等,而@EnableFeignClients扫描的是@FeignClient,所以在指定扫描路径时要分别指定


参考:https://blog.csdn.net/l1h2l3/article/details/73484806

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值