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

标签 java spring class share

我正在从事 2 个项目,一个是高度交互的 Web 应用程序 (Spring MVC) 和一个独立的后端服务应用程序 (Spring boot)。我对两者都使用 hibernate ,并且它们都使用 Netbeans IDE 进行编码。

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

有没有办法制作某种类库(也许是第三个项目?)并将所有通用代码放在那里?如果这确实可行,那么您如何更改每个项目,以便他们仍然可以访问此代码,就好像它是他们的一部分一样?我正在考虑将我所有的存储库、服务和实体都放在那里以避免代码重复并大大降低出错的风险。

谢谢!

最佳答案

将那些 RepositoryService 类分离到一个子模块中。

结构如下:

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

然后问题是在公共(public)模块中初始化bean。 AFAIK,你有两个选择:

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

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

关于java - 如何在 2 个项目之间共享存储库和服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352161/

相关文章:

spring - @scope 注释的proxyMode 和上下文组件扫描的scoped Proxy 之间的区别。?

c++ - 指向类对象的空指针: Initialization inside a function

Javascript,根据Link的innerHTML的值删除DIV的类

python - 当类从内置列表继承时

java - Android: Import DrawerLayout 无法解析

找不到 Spring Dao 测试 hibernate 类

Java支付网关库

java - 如何在Spring Tool Suite中运行两个Web项目而不发生冲突?

javascript - Guacamole VNC 文件传输

java - Hadoop - 使用 Java 将 reducer 输出合并到单个文件