zaq*_*otr 24 java spring gradle spring-boot
我有Spring Boot配置的问题.
我使用https://start.spring.io/创建了基本的Spring Boot项目
我有一个问题,配置仅适用于子目录中的类:
我试过注释@ComponentScan但它没有帮助.
你知道我能用这个做什么吗?
Sot*_*lis 54
在春季启动文档@SpringBootApplication状态
许多春季引导开发者总是有其主类注解为
@Configuration,@EnableAutoConfiguration和@ComponentScan.由于这些注释经常一起使用(特别是如果您遵循上面的最佳实践),Spring Boot提供了一个方便的@SpringBootApplication替代方案.该
@SpringBootApplication注解相当于使用@Configuration,@EnableAutoConfiguration并@ComponentScan与他们的默认属性:[...]
其中@ComponentScan的javadoc状态
如果未定义特定包,则将从声明此批注的类的包进行扫描.
也就是说,只ReadingListApplication扫描与您相同的包中的类型.
如果你想有一个自定义配置,提供自己的@Configuration,@EnableAutoConfiguration和@ComponentScan适当.
小智 15
在设置Spring boot项目时,请使用Application类(包含@SpringBootApplication基础包中的注释的类).
其中一件事@SpringBootApplication是组件扫描.但是,它只扫描子包.即如果你将该类放在com.mypackage中,那么它将扫描子包中的所有类,即com.mypackage.*.
如果你不想这样做,你也可以添加一个@ComponentScan指定根包的类,即@ComponentScan("com.mypackage")
我建议你有一个基本包,即com.mypackage.在这些包中,有你的子包.您是否包含该@SpringBootApplication基础包中的类.
alv*_*lla 12
检查Spring文档:
您可以使用@SpringBootApplication覆盖组件扫描的默认值.您只需将其作为参数包含在内:
@SpringBootApplication(scanBasePackages = "entertainment")
或字符串数组:
@SpringBootApplication(scanBasePackages = {"entertainment", "readinglist"})
小智 6
我遇到了同样的问题,为了解决它,我像这样重命名了我的包。
“com.project”
在那里你可以放置你的 SpringBootAplication 主类,然后只需创建以“com.project”开头的其他包
“com.project.dao”
“com.project.controller”
创建此子项目结构时,您无需在 @SpringBootApplication 注释中使用 scanBasePackages,这样做您的主类将能够找到项目中的每个组件。
如果您选择使用 scanBasePackages,请记住您需要像这样设置所有组件包。
@SpringBootApplication(scanBasePackages = {"com.project.dao", "com.project.controller"})
| 归档时间: |
|
| 查看次数: |
70143 次 |
| 最近记录: |