我有一个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”,如下所示:
@Configuration
@ComponentScan(basePackages="com.myapp")
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
现在令人惊讶的是,如果我使用Run As运行此应用程序 – > Spring Boot App它工作正常.但如果我将其作为Run As运行 – > Java应用程序失败,错误地说它找不到myapp-core模块中定义的bean.
如果我将我的Application.java移动到com.myapp包,它工作正常.
它应该工作,即使我也将其作为Java应用程序运行,对吧?
如果JPA存储库或实体不在Application.java包的子包中,那么我们需要明确指定它们,如下所示:
@Configuration
@ComponentScan(basePackages="com.sivalabs.jcart")
@EnableAutoConfiguration
@EnableJpaRepositories(basePackages="com.sivalabs.jcart")
@EntityScan(basePackages="com.sivalabs.jcart")
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
使用上面的附加@EnableJpaRepositories,@ EntityScan我可以使用Run As运行它 – > Java应用程序.
但仍不确定Run As时的工作正常 – > Spring Boot App !!
无论如何,我认为最好将我的Application.java移动到com.myapp包而不是与SpringBoot打架!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。