@ComponentScan注解在项目中到底该怎么使用?

这几天在调试若依管理系统的时候,发现其中一个模块启动了,但是通过网关去访问,一直访问不到。

起初还以为是配置文件的问题,然后弄了很久,发现还是不行,接着我去浏览器上,输入ip+路径,发现报404了,我就知道,多半是模块自身问题,导致外界无法访问。

当时启动类上加了@ComponentScan这个注解,将Dao层接口注入了进去,但是只将Dao层接口注入了进去无法访问,我试着将Service和Controller层都注入进去,发现能访问了,这让我百思不得其解,因为我在Controller和Service上都加了注解,按理来说spring应该能扫描到,但是就是无法根据路径访问!

@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。
只有加了配置注解的类才能被@ComponentScan自动扫描生成bean。

ComponentScan注解的使用 - edda_huang - 博客园 在项目初始化时,会将加@component,@service...相关注解的类添加到spring容器中。 但是项目需要,项目初始化时自动过滤某包下面的类,不将其添加到容器中。 有两种实现方案, 1.如 https://www.cnblogs.com/edda/p/14592939.html

一般你都不需要加这个注解,将启动类丢到最外层,他会扫面所有的bean,像你的启动类在com.app下面,他会扫描com.app文件夹下面所有的bean(包含子文件夹),你的bean丢到com.bean下面,这就扫描不到了;
ruoyi应该不会犯这种错,如果你也是这种结构,mvn clean或者重新导入idea再试试