我正在运行具有以下结构的弹簧启动应用程序
Main Application
com/my/application/app/boot/AppStarter.java
depends on Lib Application
Lib Application
META-INF/package/persistence.xml
com/my/application/data/Entity1.java
其中实体1是使用@Entity
和@Table
注释的持久性对象
AppStarter如下:
@ComponentScan({ "com.my.application.sampleScan1",
"com.my.application.sampleScan2"})
@EntityScan(basePackages={"com.my.application.data"})
@EnableAutoConfiguration
@Configuration
@PropertySources({
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = true),
@PropertySource(value = "classpath:test.properties", ignoreResourceNotFound = true) })
@ImportResource({ "classpath:my/application/fake/fakeContext.xml"})
public class FakeAppBooter {
public static void main(String args[]) {
SpringApplication.run(FakeAppBooter.class, args);
}
}
当我使用Spring启动应用程序将其打包为jar时,Lib应用程序位于/lib/LibApplication.jar
内,但是当它尝试访问实体Entity1
时,我得到:{{1} }
当从eclipse中执行此操作时,这样可以正常工作,只有在运行spring-boot-plugin生成的jar时它才会中断。
答案 0 :(得分:0)
最佳做法是仅使用
,而不是单独使用注释。@SpringBootApplication
注释您的课程,让Spring Boot完成其余的工作。
答案 1 :(得分:0)
您需要对所有软件包进行组件扫描,并对所有实体进行实体扫描
com.uganda。**和com.uganda。**。entity
所有内容都应包含在启动应用程序类中,如下所示
@SpringBootApplication
@ComponentScan({ "com.uganda"})
@EntityScan(basePackages= {"com.uganda"})
public class MyBootpApplication {