2017-05-25 76 views
0

我有2個春季啓動應用程序。一個用作SDK,用於將組件重新用於任何spring引導項目。第二個項目將使用SDK項目並使用其組件。這是基本想法。我得到依賴關係的問題沒有發現異常。春季啓動jpa項目參考服務到另一個項目

SDK項目將有一些實體及其存儲庫和服務。它將不會在application.properties中具有任何數據庫配置,因爲它將引用第二個項目,該項目將有另一個數據庫。所以我在第二個項目中配置了2個DB。

DBCONFIG片斷

sdk.datasource.driver-class-name = com.mysql.jdbc.Driver 
sdk.datasource.url = jdbc:mysql://localhost:3307/organization 
sdk.datasource.username=root 
sdk.datasource.password=password 



hrms.datasource.driver-class-name = com.mysql.jdbc.Driver 
hrms.datasource.url = jdbc:mysql://192.168.0.188:3306/hrms 
hrms.datasource.username = root 
hrms.datasource.password = hY6hvg 

當我自動裝配的第二個項目控制器上的SDK服務,如

@Autowired 
    private SDKUserService sdkUserService; 

它會顯示相關性未發現異常。

以下是我從SDK項目獲得的SDK用戶服務。

@Service 
    public class SDKUserServiceImpl implements SDKUserService { 
    // 
    } 

enter image description here enter image description here

+0

您可以更新圖像顯示您的目錄結構。 –

+0

@ramvinoth已更新。 – boycod3

回答

0

你的這兩個項目的維修器材不同的應用程序上下文。所以你沒有通過使用@Autowired從bean上下文獲得對類的訪問。爲了達到這個目的,你必須在spring的單個上下文中維護兩個項目類,只需在xml或java配置文件中做如下。

<import resource="classpath:projectBweb.xml"/> 

@Import({ projectB.class }) 
+0

那麼如何在通常情況下調用控制器 – boycod3

+0

中的服務,如果您將一個項目的xml配置文件導入到其他spring bean中,則可以使用兩個項目中的所有類的實例來管理單個上下文。兒子,你可以稱爲使用@Autowired –

+0

真正的問題是存儲庫不會創建,因爲數據庫連接。連接細節在第二個項目上,而不在SDK項目中。 – boycod3