找不到bean类Consider defining a bean of type (若依二开笔记)

错误描述:

        问题在重构项目以后,之前的配置无法满足扫描到有bean的文件需要在启动类上添加注解

@ComponentScan(basePackages = {"com.common.domain.config"})

通过写表达式的方式来进行扫描有bean的包即可完成运行可写多个使用“,”号隔开

找不到bean类Consider defining a bean of type (若依二开笔记)_第1张图片

 表达式书写规则:

        @ComponentScan注解的basePackages属性用于指定要扫描的包的路径。它可以接受字符串数组,表示需要扫描的一个或多个包路径。basePackages属性可以使用通配符表达式来扫描符合特定规则的包。

例如,如果需要扫描com.XXXX.common.domain.config及其子包下的所有组件,可以使用以下表达式:

@ComponentScan(basePackages = {"com.XXXX.common.domain.config"})

如果需要扫描多个包,则可以使用以下表达式:

@ComponentScan(basePackages = {"com.XXXX.package1", "com.XXXX.package2"})

如果需要扫描某些包中的所有类,包括不同的子包和头文件,则可以使用通配符表达式。例如,以下表达式将扫描以com.XXXX.common.domain.config开头的任何包和子包中的所有组件:

@ComponentScan(basePackages = {"com.XXXX.common.domain.config.*"})

通配符“*”表示任何文本字符序列(不包括路径分隔符“/”)。

表达式中的*和**的区别

在Spring中,通配符' *'和' ** '在@ComponentScan注解中的basePackages属性中都有不同的用法。

通配符''通常只用于表示在包名中的最后一级进行匹配,例如:com.XXXX.common.,表示扫描com.XXXX.common包及其直接子包下的组件。

而' ** '则用于表示扫描所有的子包和被扫描包中的所有组件,例如:com.XXXX. **,表示扫描com.bwie包及其所有子包中的组件。

需要注意的是,在使用' ** '表达式时,如果没有指定特定的子包或组件类,则可能会扫描更多的包和文件,导致性能下降,因此需要谨慎使用。

你可能感兴趣的:(若依,日常报错解决分析,java,开发语言)