SpringBoot的默认组件扫描

本文探讨了SpringBoot项目如何默认扫描启动类所在的包,以及如何处理不同包下的接口访问。SpringBoot的自动配置特性使得开发者无需详细配置,只需遵循约定即可。
摘要由CSDN通过智能技术生成

本篇博客主要探究:为什么SpringBoot项目中我们没有配置组件扫描的包,为什么它会默认扫描启动类所在的包?

一、访问与启动类所在同一包下的接口 

我们先来看一个简单的接口:

我们可以观察到,HelloController这个类处在启动类所在包下:

这时,我们启动项目,可以观察到,即使没有配置组件扫描的包,这个sayHi方法是可以被正常访问的:

二、访问与启动类不在同一包下的接口(不作任何其他操作 , 失败)

将其放入review包下,则访问出错: 

运行结果: 

2.1 在启动类添加 @ComponentScan注解

但是如果在启动类中添加@ComponentScan注解,并在其指定需要扫描的路径,即可解决上述问题:

可以看到,访问成功。

同理,当我们书写测试方法的时候也要如此:将测试方法放在启动类的包下。

如果没有放置的化,需要在测试方法上添加@SpringBootTest注解,里面的classes属性设置为:

启动类类名.class,如下图所示

总结:

以上情况反应了 Spring Boot 项目的一个特点:约定大于配置。 

Spring Boot使用自动配置来根据应用的依赖和类路径上的内容来自动配置应用。它会尝试猜测你的意图并配置相应的bean。这样,你只需要专注于那些与默认配置不同的部分,而不必手动配置每个细节。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值