簡體   English   中英

如何在兩個項目之間共享存儲庫和服務類

[英]How to share Repository and Service classes between 2 projects

我正在研究2個項目,一個Web應用程序(Spring MVC)和一個獨立的后端服務應用程序(Spring Boot),這些項目之間相互影響很大。 我對兩者都使用了休眠,它們都使用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.factories org.springframework.boot.autoconfigure.EnableAutoConfiguration = your.path.AutoConfiguration

    AutoConfiguration類中定義服務/存儲庫@Bean

我假設在這個答案中您的項目相互聯系

您可以在一個Spring項目中設置多個properties ,並在多個屬性文件的幫助下存儲數據庫連接參數等。
例如:

application-web.properties

application-backend.properties

通過激活每個應用程序所需的屬性文件,可以在項目中使用它們。 在這種情況下,配置文件名稱將是webbackend

使用Maven時,這是我正在使用的命令行:

mvn spring-boot:run -Drun.profiles=<<profile>>

現在,回到您的Java代碼。 如果只有您的應用程序正在使用的類,則可以通過“配置文件”進行指定。 例:

@Controller

@Profile({ "web" })
public class WebEndpoint {
}

這樣,您可以使共享的代碼可用於兩個應用程序,而無需重復大多數代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM