我有一个具有以下结构的项目: parent_module --common --persistence --service --web_ui 在 parent_module 中,我定义了外部项目依赖项和属性,如 spring-mvc、spring-social、spring-data、hibernate 和等持久性模块具有实体定义和存储库。所有存储库都从 spring data JPARepository 扩展而来。服务模块有一堆服务定义。Web_ui 包含所有网页和 Spring 配置。它也用于打包 WAR 文件。
所有的包都在同一个项目中,之前基于一个 pom.xml 文件。我正在使用spring java配置。该项目运行良好。但是我决定将它重构为不同的模块。因此,我将所有持久性包移动到持久性模块,并对其他包做同样的事情。
但是,在我移动它们之后,弹簧容器无法启动。它抛出一条错误消息说ClassNotFoundException: com.mycompany.SomeEntityRepo
@EnableJpaRepositories(basePackages = "com.mycompany.persistence.repo", repositoryImplementationPostfix="CustomImpl")
@EnableTransactionManagement
public class DatabaseConfig{
.....
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
vendorAdapter.setShowSql(true);
vendorAdapter
.setDatabasePlatform("org.hibernate.dialect.MySQL5InnoDBDialect");
vendorAdapter.setDatabase(Database.MYSQL);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan(PACKAGE_TO_SCAN);
factory.setDataSource(dataSource());
factory.setPersistenceXmlLocation("classpath:META-INF/persistence.xml");
factory.setPersistenceUnitName("persistenceUnit");
Properties properties = new Properties();
properties
.setProperty("hibernate.cache.use_second_level_cache", "true");
properties.setProperty("hibernate.cache.region.factory_class",
"org.hibernate.cache.ehcache.EhCacheRegionFactory");
properties.setProperty("hibernate.cache.use_query_cache", "true");
properties.setProperty("hibernate.generate_statistics", "true");
factory.setJpaProperties(properties);
factory.afterPropertiesSet();
return factory.getObject();
}
}
存储库:
@Repository
public interface BookEntityRepo extends JpaRepository<BookEntity, Long>{
}
感谢您提前提供任何建议。