java – SpringBoot ComponentScan与多模块项目有关
我有一个myapp父pom类型maven项目与myapp-core和myapp-web模块. myapp-core模块作为依赖项添加到myapp-web. myapp-core模块中的所有类都位于root包com.myapp.core中,myapp-web模块中的所有类都位于root包com.myapp.web中 主要的Application.java也在com.myapp.web包中.由于我的核心模块根包不同,我包括ComponentScan的公共基本包“com.myapp”,如下所示:
现在令人惊讶的是,如果我使用Run As运行此应用程序 – > Spring Boot App它工作正常.但如果我将其作为Run As运行 – > Java应用程序失败,错误地说它找不到myapp-core模块中定义的bean. 如果我将我的Application.java移动到com.myapp包,它工作正常. 最佳答案
在为spring启用调试日志级别并浏览大量日志之后,我发现扫描各种组件(如JPA存储库,JPA实体等)取决于Application.java的软件包名称.
如果JPA存储库或实体不在Application.java包的子包中,那么我们需要明确指定它们,如下所示:
使用上面的附加@EnableJpaRepositories,@ EntityScan我可以使用Run As运行它 – > Java应用程序. 但仍不确定Run As时的工作正常 – > Spring Boot App !! 无论如何,我认为最好将我的Application.java移动到com.myapp包而不是与SpringBoot打架! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |