如何在两个项目之间共享存储库和服务类

2022-04-08 00:00:00 class share spring java

我正在做两个项目,一个Web应用程序(Spring MVC)和一个独立的后端服务应用程序(Spring Boot),它们大量交互在一起。我对这两个都使用了Hibernate,并且它们都是使用NetBeans IDE编写的。

我的"问题"是,我最终在两个项目中都得到了重复的代码,主要是在存储库和服务层。我的实体显然也是重复的,因为两个项目使用相同的数据库。

有没有办法制作某种类库(可能是第三个项目?)然后把所有常见的代码都放进去?如果这确实是可能的,那么如何更改每个项目,以便他们仍然可以访问这些代码,就像它是他们的一部分一样?我正在考虑将我所有的存储库、服务和实体放在其中,以避免代码重复并极大地降低出错风险。

谢谢!


解决方案

将这些RepositoryService类分隔到子模块。

结构如下:

-- your app
  -- api    (dependent on `common` module)
  -- webapp (dependent on `common` module)
  -- common

那么问题就是在公共模块内初始化Bean。AFAIK,您有两个选项:

  1. apiwebapp模块的@Configuration类中,将common模块的基包添加到组件扫描包
  2. apiwebapp资源文件夹中,添加Spring配置工厂 /src/main/Resources/META-INF/spring.Factory Org.springframework.boot.autoconfigure.EnableAutoConfiguration=your.path.AutoConfiguration

    AutoConfiguration类内部@Bean定义服务/存储库

相关文章