如何在两个项目之间共享存储库和服务类
我正在做两个项目,一个Web应用程序(Spring MVC)和一个独立的后端服务应用程序(Spring Boot),它们大量交互在一起。我对这两个都使用了Hibernate,并且它们都是使用NetBeans IDE编写的。
我的"问题"是,我最终在两个项目中都得到了重复的代码,主要是在存储库和服务层。我的实体显然也是重复的,因为两个项目使用相同的数据库。
有没有办法制作某种类库(可能是第三个项目?)然后把所有常见的代码都放进去?如果这确实是可能的,那么如何更改每个项目,以便他们仍然可以访问这些代码,就像它是他们的一部分一样?我正在考虑将我所有的存储库、服务和实体放在其中,以避免代码重复并极大地降低出错风险。
谢谢!
解决方案
将这些Repository
和Service
类分隔到子模块。
结构如下:
-- your app
-- api (dependent on `common` module)
-- webapp (dependent on `common` module)
-- common
那么问题就是在公共模块内初始化Bean。AFAIK,您有两个选项:
- 在
api
或webapp
模块的@Configuration
类中,将common
模块的基包添加到组件扫描包
在
api
或webapp
资源文件夹中,添加Spring配置工厂
/src/main/Resources/META-INF/spring.Factory
Org.springframework.boot.autoconfigure.EnableAutoConfiguration=your.path.AutoConfiguration
在AutoConfiguration
类内部@Bean
定义服务/存储库
相关文章